![]() |
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.. |
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; |
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"? |
Re: Wo fängt man Windows Messages ab?
Probier es aus.
|
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~ |
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~ |
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:
bzw.
Application.Title := 'minimiert';
Delphi-Quellcode:
Dann siehst du, dass es geht.
Application.Title := 'wieder hergestellt';
|
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 |
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:
aber dann mußt du die MyMinimizeProcedure als Procedure deiner Form-Klasse deklarieren:
Application.OnMinimize:=MyMinimizeProcedure;
Delphi-Quellcode:
private
procedure MyMinimizeProcedure(Sender: TObject); end; [..] procedure TForm1.MyMinimizeProcedure(Sender: TObject); begin end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz