Другие языки программирования и технологии
Как задать разрешение окна в графическом режиме Turbo Pascal???
Мне нужно задать фиксированный размер окна в графическом режиме, подскажите как это сделать????
Можно вот так задать конкретный режим, не давая волю автоопределению:
procedure GraphOn; var GD, GM : Integer;
begin
GD := VGA; GM := VGAHi; InitGraph(GD, GM, '');
if GraphResult <> grOk then begin
WriteLn('Ошибка инициализации графики. ');
WriteLn('Нажмите Enter для выхода. '); ReadLn; Halt; end;
end;
Или вот ещё один пример, в котором egavga включается прямо в экзэшник программы в виде obj и включается графический режим, который поддерживает 2 страницы и возможность переключения (формируем картинку на невидимой странице, затем переключаем видимость/активность и "вуаля! " − графика без мерцаний) :
{$L egavga }
procedure EGAVGA; external;
const
ScreenW = 640;
ScreenH = 350;
procedure WaitAnyKey;
begin
while Not KeyPressed do;
while KeyPressed do
ReadKey;
end;
procedure OpenGraph;
var
Driver, Mode, Err : Integer;
St : String;
begin
if RegisterBGIdriver(@EGAVGA) < 0 then
begin
WriteLn('Ошибка регистрации графического драйвера: ', GraphErrorMsg(GraphResult));
WriteLn;
WriteLn('Для выхода нажмите любую клавишу... ');
WaitAnyKey;
Halt(1);
end;
Driver := 3; Mode := 1;
DetectGraph(Driver, Mode);
if Not((Driver = 9) And (Mode in [1, 2])) then
begin
CloseGraph;
WriteLn('Данный режим не поддерживается игрой. ');
WriteLn;
WriteLn('Для выхода нажмите любую клавишу... ');
WaitAnyKey;
Halt(1);
end;
Mode := 1;
InitGraph(Driver, Mode, '');
Err := GraphResult;
if Err <> grOk then
begin
WriteLn('Ошибка открытия графического режима: ', GraphErrorMsg(Err));
WriteLn;
WriteLn('Для выхода нажмите любую клавишу... ');
WaitAnyKey;
Halt(1);
end;
end;
procedure GraphOn; var GD, GM : Integer;
begin
GD := VGA; GM := VGAHi; InitGraph(GD, GM, '');
if GraphResult <> grOk then begin
WriteLn('Ошибка инициализации графики. ');
WriteLn('Нажмите Enter для выхода. '); ReadLn; Halt; end;
end;
Или вот ещё один пример, в котором egavga включается прямо в экзэшник программы в виде obj и включается графический режим, который поддерживает 2 страницы и возможность переключения (формируем картинку на невидимой странице, затем переключаем видимость/активность и "вуаля! " − графика без мерцаний) :
{$L egavga }
procedure EGAVGA; external;
const
ScreenW = 640;
ScreenH = 350;
procedure WaitAnyKey;
begin
while Not KeyPressed do;
while KeyPressed do
ReadKey;
end;
procedure OpenGraph;
var
Driver, Mode, Err : Integer;
St : String;
begin
if RegisterBGIdriver(@EGAVGA) < 0 then
begin
WriteLn('Ошибка регистрации графического драйвера: ', GraphErrorMsg(GraphResult));
WriteLn;
WriteLn('Для выхода нажмите любую клавишу... ');
WaitAnyKey;
Halt(1);
end;
Driver := 3; Mode := 1;
DetectGraph(Driver, Mode);
if Not((Driver = 9) And (Mode in [1, 2])) then
begin
CloseGraph;
WriteLn('Данный режим не поддерживается игрой. ');
WriteLn;
WriteLn('Для выхода нажмите любую клавишу... ');
WaitAnyKey;
Halt(1);
end;
Mode := 1;
InitGraph(Driver, Mode, '');
Err := GraphResult;
if Err <> grOk then
begin
WriteLn('Ошибка открытия графического режима: ', GraphErrorMsg(Err));
WriteLn;
WriteLn('Для выхода нажмите любую клавишу... ');
WaitAnyKey;
Halt(1);
end;
end;
>>Мне не нужен фул скрин! Мне нужно моё значение! Причём ввести его нужно не в процессе выполнения программы а в исходном коде!! !
Тогда забываем про допотопный паскаль и юзаем современный бейсик. http://rutracker.org/forum/viewtopic.php?t=3232116
В нем можно создать окно требуемого размера и развернуть там DirectX или OpenGL холст.
А дальше делай что хочешь при выбранном размере, который задается в коде.
Можно создать окно требуемого размера и туда выводить всю графику, как 2D так и 3D. Пример. http://purebasic.com/documentation/sprite/openwindowedscreen.html
>>А именно не нужен он мне, из за того что разные мониторы на компах, и я не могу нормально расположить текст и графику!
Тогда можно программно изменить разрешение экрана на требуемое и все будет в шоколаде.
Пример. http://purebasic.com/documentation/Examples/Sprite.pb.html
Тогда забываем про допотопный паскаль и юзаем современный бейсик. http://rutracker.org/forum/viewtopic.php?t=3232116
В нем можно создать окно требуемого размера и развернуть там DirectX или OpenGL холст.
А дальше делай что хочешь при выбранном размере, который задается в коде.
Можно создать окно требуемого размера и туда выводить всю графику, как 2D так и 3D. Пример. http://purebasic.com/documentation/sprite/openwindowedscreen.html
>>А именно не нужен он мне, из за того что разные мониторы на компах, и я не могу нормально расположить текст и графику!
Тогда можно программно изменить разрешение экрана на требуемое и все будет в шоколаде.
Пример. http://purebasic.com/documentation/Examples/Sprite.pb.html
Нажми Alt+Enter.
Кошиф Расулов
Мне не нужен фул скрин! Мне нужно моё значение! Причём ввести его нужно не в процессе выполнения программы, а в исходном коде!!!
Я так понимаю ты используешь реализацию графических драйверов в TurboPascal под DOS, так как там все драйвера очень старые и давно написанные то ...в винде срабатывает эмуляция графики (если оно каким то чудом может работать не в полноэкранном режиме ) то добиться другого размера окна у тебя не получится никаким образом. единственное что можно попробовать поэксперементировать с выбором другого драйвера графики VGA,EVGA,SVGA
Кошиф Расулов
Ага я тебя понял! Пасибки!
Похожие вопросы
- Как задать разрешение окна в графическом режиме Turbo Pascal??? Alt-Enter не предлагать!!
- Люди помогите пожалуйста....Кто понимает TURBO PASCAL
- Помогите сделать задания по програмированию(двумерные массивы)Turbo Pascal
- Как вставить текст в Turbo Pascal 7.1???
- Turbo Pascal
- Объясните смысл прогаммы в Turbo Pascal
- Я в коледже Turbo Pascal прохожу. Скажите он вообще где нибудь нужен? Может Turbo Pascal морально устарел?
- DOS OC или создание ОС на Turbo Pascal
- turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!
- Помогите с Turbo Pascal