AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows-Message WM_... abfangen ???

Windows-Message WM_... abfangen ???

Ein Thema von TriphunEM · begonnen am 22. Jan 2006 · letzter Beitrag vom 22. Jan 2006
Antwort Antwort
TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#1

Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 08:10
hallo. mit folgende code ist es ja möglich eine message für alle komponenten bzw. fenster einer Anwednung abzufangen.
Delphi-Quellcode:
private
  { Private-Deklarationen }
  procedure GetMessages(var msg: TMsg; var handled: boolean);
...

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage:=GetMessages;
end;

procedure TForm1.GetMessages(var msg: TMsg; var handled: boolean);
begin
  if msg.message = WM_RBUTTONDOWN then
  begin
    // was ausgführt werden soll
    handled:=true;
  end;
end;
das funktioniert auch soweit, bis auf ein Item eines Mainmenüs was ich in eine Toolbar gesteckt habe!

Warum funktioniert es dort nicht?

Hat da jemand eine Idee?

Danke im voraus???
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 08:14
Die Toolbar "sieht sich" als vollwertiges Fenster und erhebt anspruch auf eine eigene Nachrichtenschleife und fängt die Nachrichten somit selbst ab.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#3

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 09:30
danke für die antwort.

gibt es denn die möglichkeit die botschaften die an die toolbar gesendet werden abzufangen?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 10:17
Hier im Forum suchenHooks
  Mit Zitat antworten Zitat
TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#5

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 10:39
nach hooks hab ich auch schon gekuckt, aber nicht wirklich was passendes gefunden.

hättest du rat für mich?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 10:40
Hi,

ich kenne mich selbst nicht mit Hooks aus, aber für dein Vorhaben wirst du imho (!) Hooks benutzen müssen.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 11:23
Du kannst auch (meintest du das mit Hooks ?) die WndProc der Toolbar umbiegen:
Delphi-Quellcode:
  private
    { Private-Deklarationen }
      OldProgressWndProc: TWndMethod;
      procedure ProgressWndProc(var Msg: TMessage);


...


procedure TForm1.FormCreate(Sender: TObject);
begin
  OldProgressWndProc := ToolBar1.WindowProc;
  ToolBar1.WindowProc := ProgressWndProc;
end;

procedure TForm1.ProgressWndProc(var Msg: TMessage);
begin
  // Hier Messages abfangen bevor die Toolbar reagieren kann
  OldProgressWndProc (Msg);
  // Hier Messages abfangen nachdem die Toolbar reagiert hat
end;
So in etwa - dann kriegst du alle Nachrichten, die die Toolbar bekommt ...
  Mit Zitat antworten Zitat
TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#8

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 12:46
danke, das funktioniert schonmal gut. ich fang jetzt die botschaften vorher ab.
allerdings scheint das Mainmenu bzw. die items des Mainmenüs die botschaften immer noch abzufangen.

Mainmenu1.WindowProc:=ProgressWndProc; gibt es ja leider nicht. hat noch jemand dafür ein lösung??? denn dann sollte mein problem gelöst sein!!!
  Mit Zitat antworten Zitat
TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#9

Re: Windows-Message WM_... abfangen ???

  Alt 22. Jan 2006, 12:57
mmhhh. ich hab mal mit winspector gekuckt, und wenn das mainmenü in der toolbar aufpoppt und ich mit der rechten maustaste auf ein item klicke, wird keine Botschaft gesendet! weder ein rbuttondown noch ein menurbuttonup!!!

Was ist den da los?
  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 05:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz