2013-02-08 72 views
10

Câu hỏi rất đơn giản. Làm thế nào để phát hiện sự thay đổi độ phân giải màn hình trong Delphi?Làm thế nào để phát hiện sự thay đổi độ phân giải màn hình trong Delphi?

+0

Nhìn nhắn có cái gì để làm với các số liệu của hệ thống. Ví dụ. WM_SYSTEMMETRICSCHANGE –

+1

có thể trùng lặp của [Cách nhận biết khi nào số, vị trí hoặc độ phân giải của màn hình đã thay đổi?] (Http://stackoverflow.com/questions/11004051/how-to-recognize-when-number-position-or-resolution -of-màn hình-đã thay đổi) –

+0

@David - Điều đó hiện được đánh dấu trùng lặp của cái này (tự hỏi điều gì xảy ra nếu chúng recurse ..). –

Trả lời

19

Bạn chỉ cần phát hiện thông báo WM_DISPLAYCHANGE.

Ví dụ,

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

Các vấn đề liên quan