Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Anwendung in Taskleiste rechts (https://www.delphipraxis.net/38039-anwendung-taskleiste-rechts.html)

Reini64 13. Jan 2005 20:44


Anwendung in Taskleiste rechts
 
Guten Abend zusammen,

ich habe mal wieder eine Frage !

Was muß ich machen um unter Delphi eine Anwendung zuschreiben die wenn mann sie startet als Icon in der Taskleiste unteren rechten Rand (neben der Uhr ) angezeigt wird???

Ich arbeite mit Delphi 6.0 Pro und habe mir Delphi 2005 Pro gekauft (muss mich haber erstmal durchlesen)

Also wehr kann mir da weiter helfen ?

Danke

Reini64

Dax 13. Jan 2005 20:44

Re: Anwendung in Taskleiste rechts
 
TNATNA

Nikolas 13. Jan 2005 20:45

Re: Anwendung in Taskleiste rechts
 
Such mal nach 'CoolTrayIcon'. Mit der Komponente kannst du sowas recht einfach machen. Ob Delphi 2005 selbst was mitbringt, weiss ich nicht.

Reini64 13. Jan 2005 20:56

Re: Anwendung in Taskleiste rechts
 
Hi Dax,

danke für die schnelle Info !

Aber mir wird kein Icon angezeigt !

Reini64

Matze 13. Jan 2005 21:25

Re: Anwendung in Taskleiste rechts
 
Hast du den Code aus der Code-Library genau so ausgeführt, wie beschrieben? Bei mir geht das einwandfrei.

alcaeus 13. Jan 2005 21:32

Re: Anwendung in Taskleiste rechts
 
Tada: http://www.delphipraxis.net/internal...ct.php?t=36388
Wenn du alles so machst wie ich es beschrieben habe, funktioniert es auch. Einziger Nachteil: du musst eine Komponente verwenden. Fuer den Anfang empfehle ich dir das aber.

Greetz
alcaeus

Reini64 13. Jan 2005 21:33

Re: Anwendung in Taskleiste rechts
 
Also ich habe den Code kopiert und die Objecte eingefügt.

Wenn ich nun auf minimieren gehe wird kein Icon angezeigt!

hier nochmal den Code
Delphi-Quellcode:
nit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI, Menus;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    Item31: TMenuItem;
    Item21: TMenuItem;
    Item11: TMenuItem;

    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    IconData: TNotifyIconData;
  public
    { Public-Deklarationen }
    procedure WndProc(var Msg: TMessage); override;
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

////////////////////////////////////////////////////////////////////////////////
// auf Mausklicks reagieren, Fensterprozedur erweitern

procedure TForm1.WndProc(var Msg: TMessage);
var
  Point: TPoint;
begin
  if Msg.Msg = WM_USER + 20 then
  begin
    case Msg.lParam of
      WM_RBUTTONDOWN:
        begin
          SetForegroundWindow(Handle);
          GetCursorPos(Point);
          PopUpMenu1.PopUp(Point.X, Point.Y);
        end;
      WM_LBUTTONDOWN:
        begin
          //ShowMessage('links runter');
        end;
      WM_LBUTTONDBLCLK:
        begin
          Form1.Show;
          // Icon nur anzeigen wenn Fenster minimiert
          Shell_NotifyIcon(NIM_DELETE, @IconData);
        end;
    end;
  end;
  inherited;
end;

////////////////////////////////////////////////////////////////////////////////
// beim Minimieren Fomr verstecken und Icon in die TNA

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  if Message.CmdType and $FFF0 = SC_MINIMIZE then
  begin
    Hide;
    // Icon nur anzeigen wenn Fenster minimiert
    Shell_NotifyIcon(NIM_ADD, @IconData);
  end
  else
    inherited;
end;

////////////////////////////////////////////////////////////////////////////////
// Beim beenden Icon entfernen

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Shell_NotifyIcon(NIM_DELETE, @IconData);
end;

////////////////////////////////////////////////////////////////////////////////
// Beim Erstellen des Formulares TNotifyIconData-Struktur initialisieren

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.ShowMainForm := False; //Programm gar nicht erst anzeigen
  IconData.cbSize := SizeOf(IconData);
  IconData.Wnd := Handle;
  IconData.uID := 100;
  IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
  IconData.uCallBackMessage := WM_USER + 20;
  IconData.hIcon := Application.Icon.Handle;
  IconData.szTip := 'Dies ist ein TNA-Icon';
  Shell_NotifyIcon(NIM_ADD, @IconData); // fügt das Icon ein end;
end;

end.

Luckie 13. Jan 2005 21:35

Re: Anwendung in Taskleiste rechts
 
Hast du die Ereignisse auch im OI zugewiesen?

Reini64 13. Jan 2005 21:50

Re: Anwendung in Taskleiste rechts
 
Vielen Dank für den Tipp,

habe das komplett vergessen!!

Jetzt klappt es auch,

als nochmals herzlichen Dank

Reinhard

arbu man 14. Jan 2005 13:20

Re: Anwendung in Taskleiste rechts
 
Bei JEDI is auch ne coole Komponente dabei


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr.
Seite 1 von 3  1 23      

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