Как отследить изменения дисплея?

Для этого необходимо создать обработчик для перехвата сообщения WM_DISPLAYCHANGE. Применяется это в тех случаях, если Ваше приложение зависит от разрешения экрана (например, приложение работает с графикой).
Далее следует пример обработчика сообщения:

type

TForm1 = class(TForm)

 Button1: TButton;

private

 procedure WMDisplayChange(var Message: TMessage); message WM_DISPLAYCHANGE;

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMDisplayChange(var Message: TMessage);

begin

 {Do Something here}

 inherited;

end;

Взято из http://forum.sources.ru

Эта программа отслеживает изменение характеристик экрана.

...

private

 procedure WMDISPLAYCHANGE(var Msg: TWMDISPLAYCHANGE);

  message WM_DISPLAYCHANGE;

...

procedure TForm1.FormCreate(Sender: TObject);

var

 bp: integer;

begin

 bp := GetDeviceCaps(GetDC(0), BITSPIXEL);

 Form1.Caption := 'Бит на точку - ' + IntToStr(bp) +

  ' (' + FloatToStr(IntPower(2, bp)) +

  ' цветов). Разрешение ';

 Form1.Caption := Form1.Caption +

  IntToStr(GetDeviceCaps(GetDC(0), HORZRES)) + 'X';

 Form1.Caption := Form1.Caption +

  IntToStr(GetDeviceCaps(GetDC(0), VERTRES)) + ' ';

end;

procedure TForm1.WMDISPLAYCHANGE(var Msg: TWMDISPLAYCHANGE);

var

 bp: integer;

begin

 bp := Msg.BitsPerPixel;

 Form1.Caption := 'Бит на точку - ' + IntToStr(bp) +

  ' (' + FloatToStr(IntPower(2, bp)) +

  ' цветов). Разрешение ';

 Form1.Caption := Form1.Caption + IntToStr(Msg.Width) + 'X';

 Form1.Caption := Form1.Caption + IntToStr(Msg.Height) + ' ';

end;

Автор советов: Даниил Карапетян
e-mail: delphi4all@narod.ru
Автор справки: Алексей Денисов
e-mail: aleksey@sch103.krasnoyarsk.su

type
 {...}
 private
  procedure WMDisplayChange(var msg: TMessage);
  message WM_DISPLAYCHANGE;
 public
 {...}
 end;
end;
var
 Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMDisplayChange(var msg: TMessage);
begin
 ShowMessage('Display settings changed!');
 inherited;
end;

http://delphiworld.narod.ru/ DelphiWorld 6.0

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...