Einzelnen Beitrag anzeigen

s-off
(Gast)

n/a Beiträge
 
#2

Re: eigenen tray-bereich programmieren

  Alt 29. Aug 2007, 13:21
Zitat von eisblock:
Vielleicht wisst ihr auch, wie man das TrayNotifyWnd-Fenster aus dem Shell_TrayWnd-Fenster abkapseln kann (das würde die neuprogrammierung des Traybereichs ersparen)
Klar

Delphi-Quellcode:
Unit Unit1;

Interface

Uses
   Windows,
   Messages,
   SysUtils,
   Variants,
   Classes,
   Graphics,
   Controls,
   Forms,
   Dialogs,
   StdCtrls;

Type
   TForm1 = Class(TForm)
      Button1: TButton;
      Button2: TButton;
      Procedure Button1Click(Sender: TObject);
      Procedure Button2Click(Sender: TObject);
   private
      { Private-Deklarationen }
      OriginParent: Hwnd;
   public
      { Public-Deklarationen }
   End;

Var
   Form1: TForm1;

Implementation

{$R *.dfm}

Procedure TForm1.Button1Click(Sender: TObject);
Begin
   OriginParent := Windows.GetParent(xxx);
   Windows.SetParent(xxx, Self.Handle);
End;

Procedure TForm1.Button2Click(Sender: TObject);
Begin
   Windows.SetParent(xxx, OriginParent);
End;

End.
Edit:
xxx = Handle Deiner TNA

Edit2:
Hab mir gerade erst Deinen Anhang angesehen. Wenn Du
Windows.SetParent(xxx, Self.Handle); ersetzt durch
Windows.SetParent(xxx, 0); landet Deine TNA übrigens auf dem Desktop.

Edit3:
Was mir gerade noch einfällt:
Solltest Du die TNA auf Deine eigene Form packen, dann denke daran, beim Beenden Deiner Anwendung das Ganze wieder rückgängig zu machen (Button2Click) - ansonsten stehst Du ohne TNA da
Obwohl man die auch irgendwie wieder herstellen kann; weiss allerdings aktuell nicht, wie.

Edit4: Rechtschreibfehler in Edit3 beseitigt
  Mit Zitat antworten Zitat