Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

Можно ли с помощью GDI получить полноэкранный режим?   Найти похожие ветки 

 
Aldor_   (2005-01-25 21:24) [0]

Имею ввиду не maximiized window, а полноэкранный режим с возможностью выбора разрешения и глубины цвета.


 
KilkennyCat ©   (2005-01-25 21:47) [1]

да.


 
Gero ©   (2005-01-25 21:48) [2]

Что по твоему есть «полноэкранный режим» и чем он отличается от «maximiized window»?


 
Aldor_   (2005-01-25 21:54) [3]

> Что по твоему есть «полноэкранный режим» и чем он отличается от «maximiized window»?

 с возможностью выбора разрешения и глубины цвета. (из [0])


 
Gero ©   (2005-01-25 21:56) [4]


> Aldor_   (25.01.05 21:54)

Для того, чтобы выбрать разрешение и глубину цвета полноэкранный режим не нужен.


 
Aldor_   (2005-01-25 21:59) [5]

Gero ©   (25.01.05 21:56) [4]

 Ща сформулирую :))


 
Anatoly Podgoretsky ©   (2005-01-25 22:01) [6]

Поторопись, пока народу не надоело.


 
Almaz ©   (2005-01-25 23:23) [7]


> Aldor_   (25.01.05 21:24)  

Можно - с помощью ChangeDisplaySettings. Например так:

var
 DeviceMode : TDevMode;
begin
 with DeviceMode do
 begin
   dmSize := SizeOf(DeviceMode);
   dmBitsPerPel := 32;
   dmPelsWidth := 800;
   dmPelsHeight := 600;
   dmFields := DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;
 end;
 if ChangeDisplaySettings(DeviceMode,CDS_FULLSCREEN) <> DISP_CHANGE_SUCCESSFUL then
 begin
   // Ошибка !
 end;
end;


Удачи.


 
Поручик ©   (2005-01-26 01:13) [8]

А чтобы вернуть назад делай так:

var
 DevMode: TDEVMODE;
begin
 ChangeDisplaySettings(DevMode,0);
end;



 
Поручик ©   (2005-01-26 01:15) [9]

Кстати вопрос к мастерам, почему нельзя в этой функции и еще в нескольких просто написать nil? В С++ можно, а здесь нет - приходится заводить пустую переменную этого типа.


 
KilkennyCat ©   (2005-01-26 01:49) [10]

а разве так полностью назад вернет? с глубиной цвета и разрешением? я думал, надо сохранять старые настройки...


 
Поручик ©   (2005-01-26 03:53) [11]


> а разве так полностью назад вернет? с глубиной цвета и
> разрешением? я думал, надо сохранять старые
> настройки...

да, только если не применять настройки с флагом CDS_UPDATEREGISTRY, тогда вернет.
Не помню, может еще надо указать Sizeof(TDevMode), а может не надо.

Вообще-то в С++ пишешь просто ChangeDisplaySettings(NULL,NULL) и все возвращается, а в делфе гимор


 
REA   (2005-01-26 09:55) [12]

Вызов API функций от языка не сильно зависит - опиши функцию как в C++ и вперед.


 
Поручик ©   (2005-01-26 13:17) [13]

Я понимаю, только windows.pas в Делфе кривой...


 
Игорь Шевченко ©   (2005-01-26 13:18) [14]


> Я понимаю, только windows.pas в Делфе кривой...


Never attribute to malice whcih can be adequately explained by stupidity.


 
Поручик ©   (2005-01-26 13:45) [15]

Игорь Шевченко ©   (26.01.05 13:18) [14]
Never attribute to malice whcih can be adequately explained by stupidity.


Да взять хотябы туже функцию ChangeDisplaySettings, непомню какие именно, но флаги дя TdevMode там не правильно обозначенны (Delphi 7), и такого дофига. а зачем было создавать свой TcriticalSection? почему не взять стандартный? Таких примеров много, когда переходишь c си на делфе, плюешься от злости!


 
Игорь Шевченко ©   (2005-01-26 13:46) [16]

Поручик ©   (26.01.05 13:45) [15]

Я вот не плююсь, переходя. Отчего бы ?


 
kaZaNoVa ©   (2005-01-26 13:50) [17]

Поручик ©   (26.01.05 13:45) [15]

> зачем было создавать свой TcriticalSection? почему не
> взять стандартный

я юзаю :
Var
cs:_RTL_CRITICAL_SECTION;
//-----------

InitializeCriticalSection(cs); //Form.Create;

//----
EnterCriticalSection(cs);
//тут  обращение к глобальным переменным ..
LeaveCriticalSection(cs);
//----

DeleteCriticalSection(cs);//Form.Destroy


- правильно?


 
ALS ©   (2005-01-26 13:53) [18]

Поручик ©   (26.01.05 01:15) [9]
> почему нельзя в этой функции и еще в нескольких просто написать nil?

Нельзя напрямую писать NIL для var-параметров. Для них вместо NIL можно писать Cardinal(nil^).



Страницы: 1 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
14-1105682879
syte_ser78
2005-01-14 09:07
2005.02.06
Гигантомания и микронезия


3-1103900005
qmikle
2004-12-24 17:53
2005.02.06
копирование *.gdb по алиасу BDE


14-1105784443
Nous Mellon_
2005-01-15 13:20
2005.02.06
Стапудовый Хит! :)


14-1105815708
Вадя
2005-01-15 22:01
2005.02.06
Webcam


4-1103204035
pavel_guzhanov
2004-12-16 16:33
2005.02.06
Как убить процесс на удаленном компьютере с помощью WMI?