AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RegisterWindowMessage und vcl...

Ein Thema von Kedariodakon · begonnen am 18. Jan 2005 · letzter Beitrag vom 2. Jul 2005
Antwort Antwort
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#1

RegisterWindowMessage und vcl...

  Alt 18. Jan 2005, 08:36
Morgen

Da ich mich gerade bischen mit Windows-Messages beschäftige, wollt ich fragen, ob das hier so korrekt ist, oder ob es vielleicht anders besser geht...
Der Teil mit der Registerierten Windowsmeldung muß aber bleiben, aber das Nachrichten empfangen, dass ist vielleicht nicht korrekt...
Naja vielleicht aber auch nicht, da es ja funktioniert

Aja und mit dem WM_INITDIALOG weiß ich net wirklich weiter, da steht seltsames in der Hilfe drinne, was ich ganz und gar nicht verstehen will...

Delphi-Quellcode:
Unit FMain;


Interface


Uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
         Dialogs, StdCtrls;


Type
   TfrmMain = Class( TForm )
      cmdRegister:   TButton;
       cmdSend:         TButton;
      Procedure FormCreate( Sender: TObject );
      Procedure FormDestroy( Sender: TObject );
      Procedure cmdRegisterClick( Sender: TObject );
      Procedure cmdSendClick( Sender: TObject );
   Private
      { Private-Deklarationen }
      fHook:         TWindowHook;
      fMyMessage:   Cardinal;
      Function MessageHandler( Var Message: TMessage): Boolean;
   Public
      { Public-Deklarationen }
   End;


Var   frmMain: TfrmMain;


Implementation


{$R *.dfm}


Procedure TfrmMain.FormCreate( Sender: TObject );
Begin
   fHook   := MessageHandler;   //   fHook meinem MessageHandler zuweisen
   Application.HookMainWindow( fHook );   //   Hook laden
End;


Procedure TfrmMain.FormDestroy(Sender: TObject);
Begin
   Application.UnhookMainWindow( fHook );//   Hook entladen
End;


Function TfrmMain.MessageHandler( Var Message: TMessage): Boolean;
Begin
   Result      := False;   //   Wir haben die Nachricht noch nicht behandelt...
   If Message.Msg   = fMyMessage Then Begin//   Ist es unsere Nachricht?
      beep;
      Result   := True;
   End;
   //   WM_INITDIALOG ?!?   Soll True zurückliefern ?!?!?!? Why?
End;


Procedure TfrmMain.cmdRegisterClick( Sender: TObject );
Begin
   fMyMessage   := RegisterWindowMessage( 'Testy_Message' );//   Unsere Nachricht registrieren
End;


Procedure TfrmMain.cmdSendClick( Sender: TObject );
Begin
   SendMessage( HWND_BROADCAST, fMyMessage, 0, 0 );//   Unsere Nachricht senden
End;


end.
Bye
Angehängte Dateien
Dateityp: zip messagetest_191.zip (5,7 KB, 5x aufgerufen)
Christian
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: RegisterWindowMessage und vcl...

  Alt 2. Jul 2005, 10:03
Paßt besser in Win32 API

Zitat von Kedariodakon:
Aja und mit dem WM_INITDIALOG weiß ich net wirklich weiter, da steht seltsames in der Hilfe drinne, was ich ganz und gar nicht verstehen will...
In welcher Hilfe. Erstmal: Forms (TForm) sind keine Dialoge. Es wird also auch nie WM_INITDIALOG geschickt!

Den Rest der Frage habe ich nicht wirklich verstanden.

Wenn du es innerhalb einer einzigen Anwendung benutzt, also ohne die Fensternachrichten zwischen verschiedenen Apps hin- und herzuschicken, kannst du RegisterWindowMessage() komplett weglassen. Ist sinnlos, weil das nur garantiert, daß du "systemweit" eine einzigartige Fensternachricht bekommst. Es dient dazu, daß verschiedene Anwendungen, welche sich auf den Namen einer Nachricht geeinigt haben, diesen Namen verwenden können um a.) den Wert einer bereits registrierten Fensternachricht auszulesen oder b.) eine slche neu zu registrieren.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:12 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