Ich hab's mal drangehängt. Sorry, ich habe da einen Post von dir übersehen.
Aber jetzt verliere ich den Überblick.
ResFiles + Windows Unit und Programm beenden
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
- Dateianhänge
-
- Ginttu.zip
- (67.01 KiB) 67-mal heruntergeladen
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Läuft
FormClse wird nicht benötigt, da es eigenlich zu spät ist. Das ganze macht Sinn in der FormCloseQuery. Dort ganz einfach das Behandeln. WIchtig war auch, das das TryIcon beim normalen schliessen wieder deaktiviert wird.
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
const
IDI_ICON1 = 101;
begin
TrayIcon1.Icon.Handle:= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
TrayIcon1.PopUpMenu := PopupMenu1;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: boolean);
begin
if self.Tag <> 1 then
begin
CanClose := false;
TrayIcon1.Visible:= True;
self.Visible:= False;
end
else
begin
if TrayIcon1.Visible then TrayIcon1.Visible:= false;
self.Visible:= True;
end;
end;
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
Form1.Visible := True;
TrayIcon1.Visible := False;
end;
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
self.Tag := 1;
Close;
end;
FormClse wird nicht benötigt, da es eigenlich zu spät ist. Das ganze macht Sinn in der FormCloseQuery. Dort ganz einfach das Behandeln. WIchtig war auch, das das TryIcon beim normalen schliessen wieder deaktiviert wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Danke für die Hilfe!
Nachdem ich anfangs zu dumm war, CanCloseQuery an den OnClose-Event von Form1 zu binden, hat es dann doch funktioniert, wie es eigentlich soll.
Aber wo bitte, oder wie, kommt man auf solche Funktionen? Ich meine, ist es irgendwo dokumentiert, dass man die Events so übergehen und austricksen kann? Ist CanCloseQuery() ein willkürlicher Name, oder ist der wo vorgegeben, so wie Lazarus eben auch andere Prozeduren benennt?
Jedenfalls noch mals herzlichen Dank! Bin wirklich froh, dass es nun so funktionert, denn wie gesagt, das Application.Terminate; hätte mir nicht gefallen, auch wenn es vlt. gar nicht so böse ist, wie es mir scheint.
Nachdem ich anfangs zu dumm war, CanCloseQuery an den OnClose-Event von Form1 zu binden, hat es dann doch funktioniert, wie es eigentlich soll.
Aber wo bitte, oder wie, kommt man auf solche Funktionen? Ich meine, ist es irgendwo dokumentiert, dass man die Events so übergehen und austricksen kann? Ist CanCloseQuery() ein willkürlicher Name, oder ist der wo vorgegeben, so wie Lazarus eben auch andere Prozeduren benennt?
Jedenfalls noch mals herzlichen Dank! Bin wirklich froh, dass es nun so funktionert, denn wie gesagt, das Application.Terminate; hätte mir nicht gefallen, auch wenn es vlt. gar nicht so böse ist, wie es mir scheint.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Nein es ist alles nicht willkürlich.
Leider ist die Dokumentation die größte Schwäche bei Lazarus. Sie taugt leider nur dann wenn man schon ein Hacker ist. Gerade für den Anfang ist vieles zu konfus.
Bei vielen Sachen kann man auf Literatur von Delphi zurückgreifen. So ist es für mich natürlich mit OnCloseQuery und OnClose zu arbeiten. Aber das sind ein paar Jahre Programmierung und Kurse dazwischen.
Leider ist die Dokumentation die größte Schwäche bei Lazarus. Sie taugt leider nur dann wenn man schon ein Hacker ist. Gerade für den Anfang ist vieles zu konfus.
Bei vielen Sachen kann man auf Literatur von Delphi zurückgreifen. So ist es für mich natürlich mit OnCloseQuery und OnClose zu arbeiten. Aber das sind ein paar Jahre Programmierung und Kurse dazwischen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Ah, ok.
Habe mittlerweile auch ein wenig gegoogelt und siehe da, CanCloseQuery(..) taucht da doch des Öfteren auf. Bin schon gespannt, wie viele Dinge mir in der Hinsicht noch unterkommen.
Ich habe hier zwar mittlerweile ein paar Bücher über Delphi liegen, aber CanCloseQuery ist mir da bisher nicht untergekommen. (Wobei mein Borland Delphi 7 - Grundlagen, Profiwissen, Kochbuch sehr wohl ein OnCloseQuery kennt).
Jedenfalls noch mals vielen Dank für die sehr kompetente Hilfe!
Habe mittlerweile auch ein wenig gegoogelt und siehe da, CanCloseQuery(..) taucht da doch des Öfteren auf. Bin schon gespannt, wie viele Dinge mir in der Hinsicht noch unterkommen.
Ich habe hier zwar mittlerweile ein paar Bücher über Delphi liegen, aber CanCloseQuery ist mir da bisher nicht untergekommen. (Wobei mein Borland Delphi 7 - Grundlagen, Profiwissen, Kochbuch sehr wohl ein OnCloseQuery kennt).
Jedenfalls noch mals vielen Dank für die sehr kompetente Hilfe!