Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 14. Okt 2002, 00:41
Moin Chewie,

Du brauchst nicht für jede Message eine eigene Methode.
Prinzipiell kannst Du das alles in der WndProc abarbeiten.

Code:
[b]type[/b]
  TForm1 = [b]class[/b](TForm)
  [b]private[/b]
  [b]protected[/b]
    [color=#000080]// Die Default WndProc überschreiben[/color]
    [b]procedure[/b] WndProc([b]var[/b] msg : TMessage); override;
  [b]public[/b]
  [b]end[/b];

[b]var[/b]
  Form1: TForm1;
  [color=#000080]// Die selbst registrierte Message steht in dwMessage zur Verfügung[/color]
  dwMessage : DWORD;

[b]implementation[/b]

[color=#000080]{$R *.DFM}[/color]

[color=#000080]// Abfragen der Message[/color]
[b]procedure[/b] TForm1.WndProc([b]var[/b] msg : TMessage);
[b]begin[/b]
  [b]if[/b] msg.Msg = dwMessage [b]then[/b]
  [b]begin[/b]
    [color=#000080]// Was auch immer passieren soll, wenn Deine Message empfangen wurde;[/color]
  [b]end[/b]
  [b]else[/b]
  [b]begin[/b]
    [color=#000080]// Wichtig, damit der Rest auch noch funktioniert.[/color]
    [color=#000080]// man kann die ursprüngliche WndProc auch immer aufrufen,[/color]
    [color=#000080]// was aber im Falle einer eigenen Message eher unwichtig ist[/color]
    [color=#000080]// Fängt man "normale" Messages ab, kommt's drauf an, ob die[/color]
    [color=#000080]// Originalmessage standardmässig verarbeitet werden soll oder nicht.[/color]
    [b]inherited[/b] WndProc(msg);
  [b]end[/b];
[b]end[/b];
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat