Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Bei Programmstart in Tray (https://www.delphipraxis.net/10819-bei-programmstart-tray.html)

Intruder 25. Okt 2003 20:57


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 ?

Daniel B 25. Okt 2003 21:06

Re: Bei Programmstart in Tray
 
Hi,

verzichte auf die OnActivate. ;)

Intruder 25. Okt 2003 21:14

Re: Bei Programmstart in Tray
 
meine frage wo ich die procedure

Delphi-Quellcode:
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;
hinsetzen soll... im TForm1.ApplicationEvents1Minimize
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]

Christian Seehase 25. Okt 2003 22:34

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 18:33 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