ich bastle gerade an einem kleinen Programm, bei welchem ich unter Linux Mint Mate zur Laufzeit das Trayicon Image anpassen will. Das Quellbild möchte ich aus einer entsprechenden ImageListe laden.
Also habe ich in das Popup menü meines Trayicons entsprechend angepasst und mir folgenden Code zusammen gegoogelt:
Code: Alles auswählen
Procedure TForm1.MenuItem6Click(Sender: TObject);
Var
b: TBitmap;
index, i: integer;
Begin
MenuItem6.Checked := Not MenuItem6.Checked;
b := TBitmap.Create;
b.Width := ImageList1.Width;
b.Height := ImageList1.Height;
If MenuItem6.Checked Then Begin
index := ILDND; // Bild DND
// Wenn irgend ein Chat eine Ungelesene Nachricht hat, passen wir das Icon entsprechend an ..
For i := 0 To High(fParticipants) Do Begin
If fParticipants[i].nm Then Begin
index := ILDNDCHats; // Bild DND mit aktiven Chats
break;
End;
End;
End
Else Begin
index := ILChats; // Default Bild
End;
b.canvas.Brush.Color := clWhite;
b.canvas.Rectangle(-1, -1, 17, 17);
b.TransparentColor := clWhite;
b.Transparent := true;
ImageList1.Draw(b.Canvas, 0, 0, index);
TrayIcon1.Icon.Assign(b);
TrayIcon1.InternalUpdate; // -- Das hier macht überhaupt keinen Unterschied
TrayIcon1.Show;
b.free;
End;
Habt ihr noch Tipps ?