Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wo fängt man Windows Messages ab? (https://www.delphipraxis.net/7531-wo-faengt-man-windows-messages-ab.html)

Pseudemys Nelsoni 15. Aug 2003 02:26


Wo fängt man Windows Messages ab?
 
hoi

jo, siehe topic, also ich weiss garnicht in welches ereigniss die kommen...z.b wenn ich die nachricht kriegen möchte wann ein fenster minimietr wurde..

Luckie 15. Aug 2003 02:38

Re: Wo fängt man Windows Messages ab?
 
Das reagiert leider nicht so, wie ich dachte dass es reagiert.
Delphi-Quellcode:
procedure TForm1.MyMinimizeProc(Sender: TObject);
begin
  Messagebox(Self.Handle, 'Minimize', 'Bar', 0);
end;

procedure TForm1.MyRestoreProc(Sender: TObject);
begin
  Messagebox(Self.Handle, 'Restore', 'Bar', 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMinimize := MyMinimizeProc;
  Application.OnRestore := MyRestoreProc;
end;

Pseudemys Nelsoni 15. Aug 2003 13:13

Re: Wo fängt man Windows Messages ab?
 
hoi luckie, danke für den code :)

btw: was meinst du mit "es ragiert nicht so wie du dachtest"?

Luckie 15. Aug 2003 13:52

Re: Wo fängt man Windows Messages ab?
 
Probier es aus.

Aya 15. Aug 2003 14:47

Re: Wo fängt man Windows Messages ab?
 
Hi,

wenn du z.B. die Message WM_SIZE direkt abfangen willst, mach's einfach so:

1.) Setz den Cursor in eine Zeile unter dem "Protected" von der Form1-Klasse.
2.) Drücke STRG+Leertaste (um CodeInsight aufzurufen).
3.) Tippe "wmsize" -> im CodeInsight Fenster müßte "Procedure WMSize(..." stehen.
4.) Drücke Enter, die procedure wird automatisch eingefügt.
5.) mach einen rechtsklick auf die neue Zeile (also auf die WMSize Procedure)
6.) Klicke auf "Klasse beim Cursor vervollständigen.

Ded war's .. :) Nu hat dir Delphi unten die Procedure schon eingefügt und du kannst deinen Code nach belieben reinkritzeln..

Natürlich kann mandas auch einfach per Hand schreiben, aber bin halt Faul *g*

Au'revoir,
Aya~

Aya 15. Aug 2003 14:56

Re: Wo fängt man Windows Messages ab?
 
Hi,

Luckies lösung geht natürlich auch.. aber halt nur für die Events die dir TApplication bietet.. :)

für nen WM_PAINT o.Ä. mußt du es auf meine Methode machen.

Au'revoir,
Aya~

Luckie 15. Aug 2003 15:11

Re: Wo fängt man Windows Messages ab?
 
Das meinte ich nicht. Die Messagebox vom minimieren Event kommt erst, wenn man das Ffenster wieder herstellt. Das liegt aber daran, dass ein minimiertes Fenster keine Messagebix anzeigen kann. Ersetzt die Messageboxen durch:
Delphi-Quellcode:
  Application.Title := 'minimiert';
bzw.
Delphi-Quellcode:
  Application.Title := 'wieder hergestellt';
Dann siehst du, dass es geht.

Pseudemys Nelsoni 15. Aug 2003 16:23

Re: Wo fängt man Windows Messages ab?
 
hoi, erstmal danke für die ganzen antworten.

Ich kriege bei "procedure TForm1.MyMinimizeProc(Sender: TObject);" den fehler "undefinierter bezeichner MyMinimizeProc"

sorry hab sowas mit messages noch nie gemacht

Aya 15. Aug 2003 16:26

Re: Wo fängt man Windows Messages ab?
 
Hi,

pack dir mal die TApplicationEvents Komponente auf dein Form (unter Zusätzlich/Additional zu finden, oder über Ansicht -> Komponenten Liste dannach suchen)

Dort bei den Events hast du dann deinen OnMinimize Event ;)

Au'revoir,
Aya~

PS: Optional kannst du das ganze auch selber zuweisen via:
Delphi-Quellcode:
Application.OnMinimize:=MyMinimizeProcedure;
aber dann mußt du die MyMinimizeProcedure als Procedure deiner Form-Klasse deklarieren:

Delphi-Quellcode:
private
  procedure MyMinimizeProcedure(Sender: TObject);
end;

[..]

procedure TForm1.MyMinimizeProcedure(Sender: TObject);
begin

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 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