Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Trayleiste unter OSX und Windows via Firemonkey (https://www.delphipraxis.net/185437-trayleiste-unter-osx-und-windows-via-firemonkey.html)

Peter666 10. Jun 2015 12:43

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:
  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;
Das geht, ich will nur nicht alles händisch einbauen
3. Unter Windows mache ich :
Delphi-Quellcode:
 SetForegroundWindow(FHandle);
   GetCursorPos(P);
   MainMenu.Popup(P.x,P.y);
Allerdings liegt das Popupmenü hinter der Trayleiste und ist so nicht zu gebrauchen.

Peter

Bambini 10. Jun 2015 13:29

AW: Trayleiste unter OSX und Windows via Firemonkey
 
evtl. hilft das:
http://stackoverflow.com/questions/2...usitem-for-osx

CHackbart 10. Jun 2015 15:22

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.

Peter666 13. Jun 2015 17:34

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