AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wm_devicechange

Ein Thema von charly52 · begonnen am 28. Sep 2021 · letzter Beitrag vom 28. Sep 2021
Antwort Antwort
charly52

Registriert seit: 2. Sep 2018
36 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Wm_devicechange

  Alt 28. Sep 2021, 16:41
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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.820 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Wm_devicechange

  Alt 28. Sep 2021, 16:44
Ein override bei WndProc wäre vielleicht hilfreich.

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

    procedure WMDeviceChange(var Message: TMessage); message WM_DEVICECHANGE;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
charly52

Registriert seit: 2. Sep 2018
36 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Wm_devicechange

  Alt 28. Sep 2021, 17:57
Danke, gerade wollte ich meinen Post ändern.
Override wirk Wunder.

Du warst einfach zu schnell!

Charly
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.381 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Wm_devicechange

  Alt 28. Sep 2021, 23:04
Wenn du Logik und Formulare trennen willst, dann kannst du auch mit AllocateHWnd die einen Handle in einer Unit holen und eine WndProc übergeben.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/channel/UCUG...aXLclwO9qA-lzA
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf