![]() |
Bei Programmstart in Tray
Also ich habe es bereits eingerichtet das sich das programm
beim minimieren neben dir uhr legt. Allerdings habe ich auch eine CheckBox, bei der man einstellen soll, ob sich das programm direkt beim start schon dorthin minimiert. Ini ist dafür angelegt. wenn ich jetzt die selbe Procedure wie beim On.Minimize ereigniss verwende und diese dann ins OnCreate oder auch ins OnActivate lege ... If CheckBox.checked = true then ... bla bla bla minimiert sich das programm zwar, jededoch bekomm ich es da nicht mehr weg, denn sobald ich es zurückholen will, springt die onActivate procedure wieder an und schon ist das fenster wieder weg... Hoffe ihr konntet dem folgen. was kann ich machen ? |
Re: Bei Programmstart in Tray
Hi,
verzichte auf die OnActivate. ;) |
Re: Bei Programmstart in Tray
meine frage wo ich die procedure
Delphi-Quellcode:
hinsetzen soll... im TForm1.ApplicationEvents1Minimize
begin
Form1.FormStyle:=fsStayOnTop; Hide; with NIM do begin cbSize := SizeOf (nIM); Wnd := Handle; uID := 0; uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; uCallbackMessage := IC_CLICK; hIcon := Application.Icon.Handle; szTip := 'F-Key Manager'; end; Shell_NotifyIcon(NIM_ADD, @NIM); end; geht es... aber es soll sich ja auch beim programmstart minimieren wenn die checkbox aktiviert ist... -bei TForm1.OnCreate passiert garnichts -bei TForm1.OnActivate kommt "Eigenschaft Visible kann in OnShow oder On Hide nicht verändert werden" -bei TForm1.ApplicationEvents1Activate tritt der fehler auf das ich ee garnicht mehr aus der TrayBar rausbekomme [edit=Daniel B]Doppelpost gelöscht. Mfg, Daniel B[/edit] |
Re: Bei Programmstart in Tray
Moin Intruder,
ich hab' das gänzlich anders gemacht, indem ich auf die vorgefertigten Events verzichtet habe. Hier mal eine, auf das Wesentliche, zusammengetrichene WndProc. (FdwTBNAMessage entspricht Deinem IC_CLICK)
Delphi-Quellcode:
procedure TfrmMAIN.WndProc(var msg : TMessage);
begin if msg.Msg = FdwTBNAMessage then begin case msg.LParam of WM_LBUTTONUP : begin // Wird das Icon mit der linken Maustaste angeklickt, // dann wird das Hauptformular angzeigt self.Visible := true; end; end; msg.Result := 0; exit; end; // Soll das Hauptformular minimiert werden, wird es ausgeblendet, aber nicht minimiert if msg.Msg = WM_SYSCOMMAND then begin if msg.WParam = SC_MINIMIZE then begin self.Visible := false; msg.Result := 0; exit; end; end; inherited; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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