![]() |
Wm_devicechange
Hi all,
weiß jemand wie man die Windows Message WM_DEVICECHANGE abfangen und ggf. darauf reagieren kann Den folgenden Code (im MainForm) habe ich schon probiert, aber die Procedure WndProc() wird nichteinmal vom Compiler angefasst oder vom Linker wieder verworfen. Keine blauen Codezeilenpunkte in der IDE!
Delphi-Quellcode:
type
TForm2 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private {- declarations } public {- declarations } protected procedure WndProc(var Message: TMessage); end;
Delphi-Quellcode:
Was fehlt da noch?
procedure TForm2.WndProc(var Message: TMessage);
begin if (Message.Msg = WM_DEVICECHANGE) then begin ShowMessage('Was geändert'); end; inherited WndProc(Message); { Ansonsten normale Verarbeitung } end; Danke Charly |
AW: Wm_devicechange
Ein
Delphi-Quellcode:
bei WndProc wäre vielleicht hilfreich.
override
Alternativ sollte auch dies im Form gehen:
Delphi-Quellcode:
procedure WMDeviceChange(var Message: TMessage); message WM_DEVICECHANGE; |
AW: Wm_devicechange
Danke, gerade wollte ich meinen Post ändern.
Override wirk Wunder. Du warst einfach zu schnell! :-) Charly |
AW: Wm_devicechange
Wenn du Logik und Formulare trennen willst, dann kannst du auch mit AllocateHWnd die einen Handle in einer Unit holen und eine WndProc übergeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz