2013-02-08 2 views
10

Вопрос прост. Как определить изменение разрешения экрана в Delphi?Как определить изменение разрешения экрана в Delphi?

+0

Посмотрите сообщение, имеющее что-то делать с показателями системы. Например. WM_SYSTEMMETRICSCHANGE –

+1

Возможный дубликат [Как узнать, когда число, положение или разрешение мониторов изменилось?] (Http://stackoverflow.com/questions/11004051/how-to-recognize-when-number-position-or-resolution -of-monitors-has-changed) –

+0

@David - Этот символ теперь помечен как дубликат этого (интересно, что произойдет, если они рекурсируют ..). –

ответ

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

Смежные вопросы