Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

Можно ли с помощью 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
4-1102795588
Relaxxx
2004-12-11 23:06
2005.02.06
нужно получить список установленых винчестеров


1-1106639800
Aleks
2005-01-25 10:56
2005.02.06
Доки HELP как проверить есть ли по адресу (http//) нужный ресурс


14-1105957338
vopros
2005-01-17 13:22
2005.02.06
Отключилась панель Домашняя страница в explorer


3-1104947532
Rule
2005-01-05 20:52
2005.02.06
Не могу восстановить БД Firebird 1.5 из gbk


1-1106294006
Leor
2005-01-21 10:53
2005.02.06
DBGrid и видимые колонки .





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский