Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wm_devicechange (https://www.delphipraxis.net/208916-wm_devicechange.html)

charly52 28. Sep 2021 15:41

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:
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;
Was fehlt da noch?

Danke Charly

Uwe Raabe 28. Sep 2021 15:44

AW: Wm_devicechange
 
Ein
Delphi-Quellcode:
override
bei WndProc wäre vielleicht hilfreich.

Alternativ sollte auch dies im Form gehen:
Delphi-Quellcode:

    procedure WMDeviceChange(var Message: TMessage); message WM_DEVICECHANGE;

charly52 28. Sep 2021 16:57

AW: Wm_devicechange
 
Danke, gerade wollte ich meinen Post ändern.
Override wirk Wunder.

Du warst einfach zu schnell! :-)

Charly

generic 28. Sep 2021 22:04

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