Другие языки программирования и технологии

Как задать разрешение окна в графическом режиме Turbo Pascal??? Alt-Enter не предлагать!!

Как задать разрешение окна в графическом режиме 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 страницы и возможность переключения (формируем картинку на невидимой странице, затем переключаем видимость/активность и "вуаля! " − графика без мерцаний) :

uses Graph, CRT;

{$L egavga }
procedure EGAVGA; external;

const
ScreenW = 640;
ScreenH = 350;
RoadW = 200;
Falls = 100;

type
FallType = record
Live : Boolean;
X1, Y1, X2, Y2 : Integer;
end;

var
Fall : array [1..Falls] of FallType;

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 Txt(X, Y : Integer; T : String);
begin
OutTextXY(X, Y, T);
end;

procedure InfoGame(Speed, Fall : Integer);
var
St : String;
begin
Txt(10, 10, '<- move ->');
Txt(10, 20, 'ESC - exit');

Str(Speed, St);
St := 'Speed ' + St;
Txt(ScreenW - 10 - TextWidth(St), 10, St);
Str(Fall, St);
St := 'Fall over ' + St;
Txt(ScreenW - 10 - TextWidth(St), 20, St);

SetColor(15);
SetFillStyle(2, 3);
FillEllipse(100, 100, 35, 35);
end;

procedure Road(tY : Integer);
var
N : Byte;
XL, XR, Y : Integer;
begin
SetColor(3); SetFillStyle(9, 3);

XL := ScreenW div 2 - RoadW div 2 - 28;
XR := ScreenW div 2 + RoadW div 2 + 28;
N := 1;
repeat
Y := N * 40 + tY - 60;
FillEllipse(XL, Y, 10, 14);
FillEllipse(XR, Y, 10, 14);
Inc(N);
until Y > ScreenH;
end;

procedure Mobil(X : Integer);

begin
SetColor(14); SetFillStyle(1, 14);
FillEllipse(X - 15, ScreenH - 45, 3, 8);
FillEllipse(X + 15, ScreenH - 45, 3, 8);
FillEllipse(X - 15, ScreenH - 20, 3, 8);
FillEllipse(X + 15, ScreenH - 20, 3, 8);
SetColor(15); SetFillStyle(1, 7);
Bar(X - 15, ScreenH - 60, X + 15, ScreenH - 5);
SetColor(15); SetFillStyle(1, 1);
Bar(X - 13, ScreenH - 50, X + 13, ScreenH - 8);
SetColor(15); SetFillStyle(1, 7);
Bar(X - 10, ScreenH - 40, X + 10, ScreenH - 12);
end;

procedure RandomFall(N : Byte);
begin
Fall[N].X1 := (ScreenW - RoadW) div 2 + Random(RoadW);
Fall[N].X2 := Fall[N].X1 + 20;
Fall[N].Y1 := - Random(100) * 100;
Fall[N].Y2 := Fall[N].Y1 + 20;
end;

procedure InitFall;
var
N : Byte;
begin
Randomize;
for N := 1 to Falls do
RandomFall(N);
end;

procedure OutFall;
var
N : Byte;
P : array [1..8] of PointType;
begin
… Упс!
Больше не влазит…
Ограничение, блин!

Вот ссылка на эту программу: http://narod.ru/disk/24046425001/GAME.EXE.html
Лидия Кондрашова
Лидия Кондрашова
62 860
Лучший ответ
Turbo Pascal вообще для MS-DOS и старых-престарых мониторов с максимальным разрешением 640х480 при одном цвете ;) Чего ты хочешь от покойника?
Еркебулан Жумалиев я делал на Turbo-Pascal и под 1024x768 разрешение, в BGI существует и такой набор драйверов.
DOS не поддерживает графический режим. Turbo Vision и BGI не поддерживают графический режим как в винде. Только full screen с фиксированными разрешениями, задаются в функциях, читай мануалы по BGI или TV.
Марат Адилов
Марат Адилов
18 845
На Win7 тебе вряд ли удастся это сделать.

Паскаль не актуален.
Виктор Поздняк Если не актуален паскаль, то по той же причине не актуальны и С/С++.