![]() |
Trayleiste unter OSX und Windows via Firemonkey
Hi,
ich habe angefangen eine Komponente zu erstellen die ein Icon in der Trayleiste anzeigt und durch anklicken ein Popupmenü darstellt. Derzeit habe ich 3 Probleme dabei: 1. Wie kann ich ein TBitmap an ein NSImage übergeben. Ich möchte nicht das Icon im Appbundle liegen haben und manuell laden. 2. Wie kann ich unter OSX ein Popupmenü nehmen und das in ein NSMenu umwandeln? Zur Zeit mache ich so etwas:
Delphi-Quellcode:
Das geht, ich will nur nicht alles händisch einbauen
Item:= TNSStatusBar.Wrap(TNSStatusBar.OCClass.systemStatusBar).statusItemWithLength(NSVariableStatusItemLength);
Item.retain; Item.setHighlightMode(true); Item.setAction(sel_getUid(PAnsiChar('itemclick:'))); Item.setToolTip(NSSTR('Zeitverwaltung')); Item.setTarget(self); ... Item.setMenu(FNSMenu); Item.release; 3. Unter Windows mache ich :
Delphi-Quellcode:
Allerdings liegt das Popupmenü hinter der Trayleiste und ist so nicht zu gebrauchen.
SetForegroundWindow(FHandle);
GetCursorPos(P); MainMenu.Popup(P.x,P.y); Peter |
AW: Trayleiste unter OSX und Windows via Firemonkey
|
AW: Trayleiste unter OSX und Windows via Firemonkey
Der Ansatz ist richtig. Guck mal in die FMX.Platform.Mac bzw. Win. Bei meiner Lösung hab ich Teile der Passagen von da kopiert. Für dein Problem unter Windows musst du ein eigenes HMENU erstellen, ähnlich wie bei OSX. Anders gehts leider nicht. in der Platform.Mac ist auch ein Bitmap Zu NSIMage Konverter bei. Falls du nicht weiter kommst schick mir mal ne PM und ich stelle dir die Klasse zur Verfügung.
|
AW: Trayleiste unter OSX und Windows via Firemonkey
Cool vielen Dank, die Klasse geht 1a. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 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