Entwickler-Ecke
Windows API - Application.OnMinimize - wie funktionierts?
mehmeh - Do 22.09.05 15:05
Titel: Application.OnMinimize - wie funktionierts?
Hallo,
ich möchte das mein Programm beim Start in die TNA verschwindet und dann mit einer Procedure beginnt. Da ich das mit der CoolTray Komponente nicht hinbekomme, habe ich mich auf die Suche gemacht und das gefunden.
Aplication.OnMinimize
also habe ich das in meine procedure OnCreate eingebaut und einiges probiert.
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormCreate(Sender: TObject); begin ... Application.OnMinimize; end; |
hier kommt folgende Fehlermeldung
Zitat: |
[Fehler] Main.pas(723): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' |
so dann hab ich das probiert:
Delphi-Quelltext
1:
| Application.OnMinimize := autokonvert; |
hier bekomm ich diese Fehlermeldung
Zitat: |
[Fehler] Main.pas(723): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' |
nun hab ich das probiert
Delphi-Quelltext
1:
| Application.OnMinimize := autokonvert(Sender,BD,betr); |
und so wie der Zufall es will
Zitat: |
[Fehler] Main.pas(723): Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter' |
Jetzt bin ich ratlos. Wie verwende ich das denn nun? Oder hat jemand einen andern guten Vorschlag
ulrix - Do 22.09.05 15:28
Tja, du hast das ein bisschen falsch verstanden.
OnMinimize ist ein
Event keine
Methode!!!
Das heist OnMinimize wird von dem Objekt intern aufgerufen, wenn die Applikation minimiert wurde!!!
Wenn du selbst deine App minimieren willst musst du
aufrufen!!
Wenn du auf das Minimize Event reagieren willst verwende am besten die
TApplicationEvents Komponente (unter "Zusaetzlich" zu finden).
mfg ulriX
flieger-michl - Do 22.09.05 15:28
Hallo,
ich bin mir nicht sicher, ob ich verstanden hab, was Du erreichen willst.
Application.OnMinimize ist ein Event, der eintritt, wenn der Anwender das Hauptformular der Anwendung minimiert.
Wenn Du erreichen willst, daß Dein Programm in der Taskleiste nicht mehr zu sehen ist,
dann verwende ShowWindow(Application.Handle, SW_HIDE);
Wenn Du was anderes erreichen wolltest, klär mich auf.
Grüße
Michl
mehmeh - Do 22.09.05 15:54
So jetzt mal das Beispiel aus der Hilfe
Zitat: |
Zu diesem Beispiel gehört ein Timer in einem Formular. Wenn die Anwendung läuft und auf Symbolgröße verkleinert wird, startet der Timer, und die Anwendung erhält wieder ihre normale Fenstergröße, sobald das Ereignis OnTimer eintritt. Der Timer wird dann deaktiviert, bis das Formular das nächste Mal wieder minimiert wird.
Deklarieren Sie die Methode AppStartTimer als public-Methode von TForm1.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.FormCreate(Sender: TObject);
begin Application.OnMinimize := AppStartTimer;
end;
procedure TForm1.AppStartTimer(Sender: TObject);
begin Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin Application.Restore; Timer1.Enabled := False; end; | |
Ich dachte das ich das für meinen Fall, etwas verändert einsetzten kann. Im Beispiel wurde
Application.Minimize ja auch so aufgerufen, wie ich es probiert habe.
Und dabei will ich nur das mein Programm automatisch weiter arbeitet, wenn es minimiert wird.
Das Program aus der Taskleiste zubekommen und in das TNA zu schieben, das hab ich mit der CoolTray Komponente hinbekommen, aber ich weiß nicht wie ich das Programm weiterlaufen lasse, wenn es minimierrt ist, schließlich will ich nicht immer aufpassen.
Moderiert von
raziel: Delphi-Tags hinzugefügt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!