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 Fenster minimieren (https://www.delphipraxis.net/5982-fenster-minimieren.html)

hummer 25. Jun 2003 12:03


Fenster minimieren
 
Hallo
Ich möchte gerne, wenn ich eine Form minimiere, dass sie nicht in der Taskleiste angezeigt wird sondern als Tray Icon(heisst glaub ich so).
Dies soll auch mit dem integriertem minimieren Button in der Form funktionieren.

Danke im Vorraus

Luckie 25. Jun 2003 12:08

Hier: http://www.luckie-online.de/files/demos/ findest du ein TNA-Demo, was genau das kann.

hummer 25. Jun 2003 12:18

Danke habs mir runtergeladen und werds gleich testen.

Trouble_Maker 25. Jun 2003 12:39

hi


hmm komisch ... irgendwie klappt das nichmehr richtig bei mir! Aber hat mal! Also hier der Code:

Code:

{...}
const
  IC_CLICK = WM_APP + 201;

var
  NIM : TNotifyIconData; //das findet er komischerweise jetzt nichmeher

procedure TForm1.Systray(var sMsg: TMessage);
begin
  // Vorgang: Klick auf das Icon neben der Uhr und Anzeige der Anwendung
  inherited;
  if (sMsg.LParam = WM_LBUTTONDOWN) then begin
    Show;
    Shell_NotifyIcon(NIM_DELETE, @NIM);
    Application.Restore; //zeigt die Anwendung wieder an
  end;
end;

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  //Vorgang: Minimieren der Anwendung, Entfernung des Taskleisteneintrags
  //und Hinzufügen des Programmicons neben der Uhr
  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 := 'Windows Wecker';
  end;
  Shell_NotifyIcon(NIM_ADD, @NIM);
end;
so ... also so gings mal bei mir ... komischerweise jetzt nichmehr

kannst ja mal ausprobieren

hoffe ich konnte dir helfen bis dann

Trouble_Maker

Trouble_Maker 25. Jun 2003 12:57

ah habs hinbekommen:

hab noch was vergessen:

also das steht in meinem Code:
Code:
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, ExtCtrls, StdCtrls, Buttons, ShellApi, AppEvnts, mmsystem, Mask;


const
  IC_CLICK = WM_APP + 201;
so klappts. weiss nur nich mehr, welche der "uses-Teile" dafür benötigt werden ^^ deswegen habe ich alle hingeschrieben ;-)


zumindest klappts so !!!


cu Trouble_Maker

PS: Also brauchst bei dem obigen Code nur das
"procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);" !!! Das andere nicht.

Du musst unter Zusätzliches dieses Ding *gg* (wie nennt man das nochma) aufs Formular setzen! bei mir 2tes von rechts.

Luckie 25. Jun 2003 13:18

Hm, also bei mir läuft alles ohne zusätzliche Komponente. Keine Ahnung wie du jetzt meinen Code verunstalltet hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 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