2013-02-08 21 views
10

La domanda è semplice. Come rilevare la modifica della risoluzione dello schermo in Delphi?Come rilevare la modifica della risoluzione dello schermo in Delphi?

+0

apparire un messaggio di avere qualcosa a che fare con metriche di sistema. Per esempio. WM_SYSTEMMETRICSCHANGE –

+1

possibile duplicato di [Come riconoscere quando il numero, la posizione o la risoluzione dei monitor è cambiato?] (Http://stackoverflow.com/questions/11004051/how-to-recognize-when-number-position-or-resolution -di-monitor-ha-cambiato) –

+0

@David - Quello è ora contrassegnato come duplicato di questo (chiedo cosa succede se recidono ..). –

risposta

19

È necessario solo rilevare il messaggio WM_DISPLAYCHANGE.

Per esempio,

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

Problemi correlati