Autor Beitrag
Burgpflanze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Windows2000 Prof. SP4
Delphi7 Enterprise
BeitragVerfasst: So 18.05.03 12:00 
Unter Linux muss zunächst erst einmal der jeweilige Desktop-Manager diese Möglichkeit bieten - und das ist meines Wissens zur Zeit nur KDE. Lösung: Zunächst muß erst einmal gesagt werden, das TrayIcons unter KDE nicht vergleichbar sind mit denen unter Windows. Unter KDE sind sogenannte TrayIcons komplett eigenständige Fenster!

Wie nun aber bekommen wir es hin?

Nach meinen bisherigen Erfahrungen sollte man dazu immer die MainForm der jeweiligen Application benutzen, da es ansonsten zu Problemen kommt.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
uses 
  XLib, Qt;

procedure TForm1.FormCreate(Sender: TObject);
var
  prop: TAtom;
  data: TAtom;
begin

  Width := 24// Icons im KDE-SystemTray sollten 24x24 Pixel groß sein,
  Height := 24// größere werden beschnitten, kann auch im ObjectInspector gesetzt werden
  
  // Die zwei folgenden Zeilen müssen hier stehen,
  // es nützt nichts, wenn sie im ObjectInspector gesetzt werden
  BorderStyle := fbsNone;
  BorderIcons := [];

  // Mit den nachfolgenden Zeilen wird unser Fenster in den SystemTray eingefügt
  prop := XInternAtom(Application.Display, '_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR'1);
  XChangeProperty(Application.Display, QWidget_winId(self.Handle), prop,
     XA_WINDOW, 32, PropModeReplace, PByte(@data), 1);
end;

Das Icon selbst kann entweder in der Eigenschaft Bitmap der MainForm setzen, oder man legt ein TImage auf die MainForm und setzt
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Left := 0;
Top := 0;
Width := 24;
Height := 24;

und die Picture-Eigenschaft auf ein Icon.

Jenachdem welchen Weg man gewählt hat, kann man entweder die Maus-Nachrichten der MainForm oder die des TImage abfangen, um z. B. ein PopupMenu anzuzeigen.

Ich hoffe, das ich es einigermaßen verständlich schreiben konnte.

Kleine Ergänzung für die Quellenangabe.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: So 18.05.03 14:12 
Kleine Ergänzung für die Quellenangabe.

_________________
Ist Zeit wirklich Geld?
FriFra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Mi 04.06.03 12:37 
Also bei mir schwebt das Fenster irgendwo (defaultposition), aber nicht im "Tray"...

_________________
Michael
(principal certified lotus professional - developer)
mth
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 34



BeitragVerfasst: Di 10.06.03 23:14 
FriFra hat folgendes geschrieben:
Also bei mir schwebt das Fenster irgendwo (defaultposition), aber nicht im "Tray"...


Ersetzte bitte mal fbsNone mit fbsSingle. Falls Das nicht funktionieren sollte, könntest Du mir bitte die genaue Version deines Window Manager (KDE!) sagen und evtl. die des XWindow Systems... am besten per PM.