घर
Top.Mail.Ru Yandeks.Metrika
मंच: "मीडिया";
वर्तमान संग्रह: 2002.10.03;
डाउनलोड करें: [xml.tar.bz2];

नीचे

स्क्रीन रिज़ॉल्यूशन बदलने में समस्याएं (डेल्फी एक्सएनयूएमएक्स) इसी तरह की शाखाएँ खोजें


Good Man   (2002-06-04 21:49) [0]

Создаю простое мультимедийное приложение. Вся анимация завязана с TСanvas и BMP-файлами. Для максимального использования площади экрана, диалоговое окно создаю размером 1024 на 768 пикселей.

Что бы избежать проблем с масштабированием диалогового мультимедийного окна (т.к. BMP – рисунки имеют определенный размер) - делаю форму с фиксированным размером 1024 на 768 пикселей.

У пользователей может быть какое угодно разрешение и поэтому перед запуском приложения необходимо изменит экранное разрешение к 1024 х 768.

Когда приложение закрывается или минимизируется – первоначальное экранное разрешение необходимо восстановить.

Процедура изменения разрешения выглядит так:

समारोह SetFullscreenMode: बूलियन;
var DeviceMode: TDevMode;
शुरू करना
DeviceMode के साथ शुरू करते हैं
dmSize:=SizeOf(DeviceMode);
dmBitsPerPel:=16;
dmPelsWidth:=1024;
dmPelsHeight:=768;
dmFields:=DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;
result:=False;
if ChangeDisplaySettings(DeviceMode,CDS_TEST or CDS_FULLSCREEN) > DISP_CHANGE_SUCCESSFUL
then Exit;
Result:=ChangeDisplaySettings(DeviceMode,CDS_FULLSCREEN) = DISP_CHANGE_SUCCESSFUL;
अंत;
अंत;

Процедура, которая восстанавливает разрешение выглядит так:

प्रक्रिया RestoreDefaultMode;
var T: TDevMode निरपेक्ष 0;
शुरू करना
ChangeDisplaySettings (T, CDS_FULLSCREEN);
अंत;

Задача по началу кажется простой?

Покажу свой глючный вариант решения:

//форма загружается или становится активной
procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
शुरू करना
if (NewHeight <> 768) or (NewWidth <> 1024) then
शुरू करना
SetFullscreenMode;
अंत;

अंत;

//форма закрывается – изменяем возвращаем первоначальное разрешение
प्रक्रिया TForm1.FormDestroy (प्रेषक: TObject);
शुरू करना
RestoreDefaultMode;
अंत;

...
{सार्वजनिक घोषणाएँ}
protected Procedure WMGetSysCommand(var Message : TMessage); message WM_SYSCOMMAND;
...

//при минимизации формы – восстанавливаю первоначальное разрешение
Procedure TForm1.WMGetSysCommand(var Message : TMessage) ;
शुरू करना
if (Message.wParam = SC_MINIMIZE) then
शुरू करना
ShowWindow(application.handle, SW_MINIMIZE);
RestoreDefaultMode;
अंत
else if (Message.wParam = SC_MAXIMIZE) then
शुरू करना
SetFullscreenMode;
ShowWindow(application.handle, SW_MAXIMIZE);
अंत
else if (Message.wParam = SC_CLOSE) then
शुरू करना
Form1.Close();
अंत
अंत;

मुसीबत:
Если форму свернуть предыдущее разрешение восстанавливается. Если ее затем развернуть разрешение становится 1024 на 768, но форма не разворачивается полностью на экран.

Мне очень нужна ваша помощь!



Good Man   (2002-06-04 23:30) [1]

Проблема решена. Необходимо в обработчик события FormCanResize добавить следующий код:

procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
if (NewHeight <> 768) or (NewWidth <> 1024) then
begin

SetFullscreenMode;
NewHeight := 768;
NewWidth := 1024;

end;
end;



पन्ने: 1 पूरी शाखा

मंच: "मीडिया";
वर्तमान संग्रह: 2002.10.03;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.55 एमबी
समय: 0.021 c
1-8030
TopGun
2002-09-17 23:07
2002.10.03
पीसीआर के साथ समस्या


4-8225
anod
2002-08-15 18:51
2002.10.03
बाल खिड़की


6-8079
aglar
2002-07-31 10:49
2002.10.03
इंटरनेट से डाउनलोड की गई जानकारी का आकार


3-7791
बवंडर
2002-09-11 15:54
2002.10.03
फास्टट्रिप पर सवाल


3-7883
BlackTiger
2002-09-14 10:26
2002.10.03
HOW: डेटा स्रोत को छुए बिना ग्रिड को सॉर्ट करना।





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский