2013-02-08 10 views
10

सवाल सरल है। डेल्फी में स्क्रीन रिज़ॉल्यूशन परिवर्तन का पता कैसे लगाएं?डेल्फी में स्क्रीन रिज़ॉल्यूशन परिवर्तन का पता लगाने के लिए कैसे?

+0

संदेश होने कुछ प्रणाली मैट्रिक्स के साथ क्या करना है। जैसे WM_SYSTEMMETRICSCHANGE –

+1

संभावित डुप्लिकेट [मॉनीटर की संख्या, स्थिति या संकल्प कब बदल गया है?] (Http://stackoverflow.com/questions/11004051/how-to-recognize-when-number-position-or-resolution -ऑफ-मॉनीटर-बदल गए हैं) –

+0

@ डेविड - अब इसे इस के डुप्लिकेट चिह्नित किया गया है (आश्चर्य है कि अगर वे रिकर्स करते हैं तो क्या होता है ..)। –

उत्तर

19

आपको केवल WM_DISPLAYCHANGE संदेश का पता लगाने की आवश्यकता है।

उदाहरण के लिए

,

TForm1 = class(TForm) 
private 
protected 
    procedure WMDisplayChange(var Message: TWMDisplayChange); 
    message WM_DISPLAYCHANGE; 
    { Private declarations } 

public 
    { Public declarations } 
end; 

... 

procedure TForm1.WMDisplayChange(var Message: TWMDisplayChange); 
begin 
    ShowMessageFmt('The screen resolution has changed to %d×%d×%d.', 
    [Message.Width, Message.Height, Message.BitsPerPixel]); 
end; 

Sample screenshot http://privat.rejbrand.se/screenreschange.png

संबंधित मुद्दे