You should intercept WM_DISPLAYCHANGE message. Implementation of this idea is so:
type TForm1 = class(TForm) Label1: TLabel; private procedure MyMessage(var Msg: TWMDisplayChange); message WM_DISPLAYCHANGE; { Private declarations } public { Public declarations } end; ... procedure TForm1.MyMessage(var Msg: TWMDisplayChange); begin Form1.Label1.Caption:= 'New video mode is: '+ IntToStr(Msg.Width)+' - '+ IntToStr(Msg.Height); end;