Форум: "Основная";
Текущий архив: 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