Модератор: Модераторы
Astador писал(а):Подскажите пожалуйста как подключить в графическом режиме высокое разрешение экрана. Хотя бы 1024х768 .

Program Gg_Modes;
uses
  Graph;
  Var
    Gd, Gm : Integer;
    x : longint;
  Begin
   Gd:= Detect;
   Gm:= m1024x768x64K;
   InitGraph(Gd, Gm, '');
   If GraphResult <> grOk Then Halt(1);
   for X:=0 to GetMaxColor do
   begin
     SetColor(X);
     line(X, 0,  X, GetMaxY);
   end;
   ReadLn;
   CloseGraph;
  End.

informat писал(а):Detect открывает на весь экран. Разве этого мало?
А точки (пикселы) меньше, чем поддерживает монитор, всё равно не станут.
 ) не получаю.
 ) не получаю.  А если задаю вручную - m1024x768, то получаю нормальное окошко с изображение.
 А если задаю вручную - m1024x768, то получаю нормальное окошко с изображение. 
Vadim писал(а):informat писал(а):Detect открывает на весь экран. Разве этого мало?
А точки (пикселы) меньше, чем поддерживает монитор, всё равно не станут.
Detect ориентируется на возможности видеокарты, а не на возможности монитора, так что его лучше не использовать, а задавать разрешение явно. У меня, например, монитор имеет расширение 1280, а Detect даёт 1600. Естественно никакого изображения (кроме Малевича) не получаю.
А если задаю вручную - m1024x768, то получаю нормальное окошко с изображение.
На счёт цвета - та же фигня, задайте его вручную.

informat писал(а):У приведенном выше примере не получается подобрать константы, которые нужно присвоить переменным GD и GM, чтобы можно было использовать в графическом окне 16М цветов. Или хотя бы 64K.

gd:=D16bit;Vadim писал(а):informat писал(а):У приведенном выше примере не получается подобрать константы, которые нужно присвоить переменным GD и GM, чтобы можно было использовать в графическом окне 16М цветов. Или хотя бы 64K.
Судя по документации, 16М цвет пока ещё не поддерживается. И, наверное, уже не будет. В связи с неактуальностью MS-DOS.
Поддерживается 64К цветов. Для этого надо указать:
- Код: Выделить всё
gd:=D16bit;

{Проверка поддерживаемых графических режимов}
Uses Graph;
Var
  Info: PModeInfo;
Begin
  Info:=QueryAdapterInfo;
  While Info^.Next<>NIL Do
  Begin
    WriteLn(Info^.ModeName, ' : ', Info^.MaxX, 'x', Info^.MaxY, ', ', Info^.MaxColor);
    Info:=Info^.Next;
  End;
End.
Vadim писал(а):informat
В модуле Graph есть одна особенность - он работает на режимах VESA. Поэтому, чтобы не путаться в трёх соснах, надо для начала выяснить, а какие режимы VESA поддерживает Ваш адаптер. В Graph'е есть для этого специальная функция. Вот Вам программка:
...

Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1