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 Taskleiste (https://www.delphipraxis.net/12764-taskleiste.html)

xavior 3. Dez 2003 19:30


Taskleiste
 
Also ich hab ein kleines Problem ich hab ein Programm, das beim Minimieren des Fensters aus der Taskleiste verschwindet und im SysTray auftauchen soll und durch ein doppelklick im SysTray wieder Maximiert werden soll, das mit dem Minimieren hab ich (mit Hilfe der Code-Library)hingekriegt, aber dem Rest komm ich irgedwie nicht klar :wall: !!! Kann mir jemand Helfen

Hier ist der Source:

Delphi-Quellcode:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, shellapi;

const
PM_TRAY = WM_APP + 201;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure PMTray(var sMsg: TMessage); message PM_TRAY;
{ Private-Deklarationen } 
public
{ Public-Deklarationen } 
end;

var
Form1: TForm1;
nIM : TNOTIFYICONDATA;
CONST
hinstExe : HINST = 0;
implementation
Procedure TForm1.PMTray(var sMsg : TMessage);
begin
//was passiert wenn geklickt wird
inherited;
//hier linker Mausbutton
If (sMsg.LParam = WM_LBUTTONDOWN) Then begin
showmessage('HuHu');
end;
end;
{$R *.DFM} 
procedure TForm1.FormCreate(Sender: TObject);
begin
// Structur festlegen
with nIM do begin
cbSize := SizeOf (nIM);
Wnd := Handle;
uID := 0; //ID_ICON
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := pm_tray;
hIcon := Application.Icon.Handle;
szTip := 'Test'; //hind festlegen
end;
//icon in den systray
Shell_NotifyIcon(NIM_ADD, @nIM);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//icon rausnehmen
Shell_NotifyIcon(NIM_DELETE, @nIM);
end;
end.

Luckie 3. Dez 2003 19:35

Re: Taskleiste
 
Da ist es doch schon:
Delphi-Quellcode:
Procedure TForm1.PMTray(var sMsg : TMessage);
begin
  //was passiert wenn geklickt wird
  inherited;
  //hier linker Mausbutton
  if (sMsg.LParam = WM_LBUTTONDOWN) then
  begin
    showmessage('HuHu');
  end;
end;
Anstatt ShowMessage einfach dein Formular anzeigen.

xavior 3. Dez 2003 19:39

Re: Taskleiste
 
Das Problem ist ja das das Programm aus der Taskleiste verschwinden soll, so ungefähr wie ein AntiVirus-Programm und das ist ja damit denk ich mal nicht gewährleistet !?! :roll:

Luckie 3. Dez 2003 19:41

Re: Taskleiste
 
Kuck mal in der Code-Lib, da habe ich Source zu so einem Ding gepostet.

xavior 3. Dez 2003 19:49

Ich brach den Befehl um das Programm aus der TLeiste zu entf
 
Meinst du Reagieren auf das Minimieren & Maximieren des Fensters, wenn ja dann seh ich trozdem noch keinen Befehl dadrine wie ich ein Programm aus der "Taskleiste" entferne !!! :( :( :(

Luckie 3. Dez 2003 19:50

Re: Taskleiste
 
Nein. TNATNA.

xavior 3. Dez 2003 19:55

Re: Taskleiste
 
HEEEEEEEEEEE komisch, wenn ich selber nach desem Topic suche finde ich ihn nicht, aber wenn ich auf den Link klick dann ist der da ??!?? :?: :drunken:

Aber trozdem DANKE ! :hello: :dancer:

Jetzt kann ich weiter arbeiten :coder:


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