Lazarus auf Mac: MainMenu zur Laufzeit nicht sichtbar

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
WolfgangPascal
Beiträge: 3
Registriert: Mi 25. Nov 2020, 19:23

Lazarus auf Mac: MainMenu zur Laufzeit nicht sichtbar

Beitrag von WolfgangPascal »

Hallo zusammen, ich bin neu hier mit Lazarus auf dem Mac und habe ein "kleines" Problem.
Zuerst: Ich verwende Lazarus in der Version 2.0.10 auf einem Mac mit macOS Big Sur, also Version 11.0.1
und programmiere mit Delphi auf virtuellen Maschinen von Parallels.

Zum Problem:
Zum Testen von Lazarus wollte ich eine kleine GUI-Anwendung mit einem Menü erstellen.
Das MainMenu hat ein MenuItem mit einem Shortcut zum Beenden des Programms.
Das lässt sich alles wunderbar über den MenuEditor erledigen.
Allerdings:
Zur Laufzeit der Applikation auf dem Mac ist das MainMenu nicht sichtbar, aber der Shortcut funktioniert!
Woran kann das liegen?
Also die App mit einem Memofeld erweitert und dort lasse ich mir die Höhe des MainMenus ausgeben.
Zur Laufzeit wird mir tatsächlich die Höhe 0, in Worten Null, ausgegeben.
Da die Höhe des MainMenus eine ReadOnly-Eigenschaft ist kann ich sie im Programm nicht setzen; sie sollte also
automatisch zur Laufzeit vom System richtig gesetzt werden. Oder habe ich da etwas übersehen?

Zur Kontrolle habe ich das Ganze in Delphi nachgebaut und siehe da, das Menü ist sichtbar und dort bekomme ich die Höhe mime MemoFeld mit 81 (Pixel?) angezeigt.

Was mir weiter zum MainMenu unter Lazarus aufgefallen ist:
Löst man einen Rechtsklick auf dem TMainMenu-Icon auf dem Formular aus, wird im PopupMenü unter anderem der AnkerEditor angezeigt aber nach dem Einblenden des Fensters steht im Titel " Ankereditor - kein Kontrollelement ausgewählt " und alle Verankerungen sind inaktiv!

Was habe ich falschgemacht? Warum wird die Höhe des MainMenus nicht richtig gesetzt?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Lazarus auf Mac: MainMenu zur Laufzeit nicht sichtbar

Beitrag von fliegermichl »

Das scheint mit dem Mac OS zusammen zu hängen. Ich hab mal gegoogelt und das hier gefunden:
https://stackoverflow.com/questions/413 ... -displayed

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus auf Mac: MainMenu zur Laufzeit nicht sichtbar

Beitrag von wp_xyz »

WolfgangPascal hat geschrieben:
Mi 2. Dez 2020, 13:46
Zur Laufzeit der Applikation auf dem Mac ist das MainMenu nicht sichtbar, aber der Shortcut funktioniert!
Ich meine mich zu erinnern, dass macOS das Systemmenü am oberen Bildschirmrand gegen das Anwendungsmenü austauscht, wenn ein Fenster mit Menü aktiv wird. Also such mal am oberen Bildschirmrand, nicht in deinem Programm..
WolfgangPascal hat geschrieben:
Mi 2. Dez 2020, 13:46
Löst man einen Rechtsklick auf dem TMainMenu-Icon auf dem Formular aus, wird im PopupMenü unter anderem der AnkerEditor angezeigt aber nach dem Einblenden des Fensters steht im Titel " Ankereditor - kein Kontrollelement ausgewählt " und alle Verankerungen sind inaktiv!
Der Anker-Editor-Eintrag ist bei mir (Laz-Trunk, aber auch Laz 2.0.10) ausgegraut. Welche Lazarus Version hast du denn?

-----------

Wieso brauchst du die Menü-Höhe? Dein Layout wird automatisch angepasst, ob ein Menü da ist oder nicht.

WolfgangPascal
Beiträge: 3
Registriert: Mi 25. Nov 2020, 19:23

Re: Lazarus auf Mac: MainMenu zur Laufzeit nicht sichtbar

Beitrag von WolfgangPascal »

Hallo wp_xyz,

danke, du hast vollkommen recht, das Menü des eigenen Programms wird wirklich am oberen Rand des Bildschirms dargestellt.
Ich hatte das nicht erwartet und natürlich dort nicht hingeschaut!
Manchmal ist man auf allen Augen blind; das Ganze hat mich jetzt etwa eine Woche gekostet, Mist!

Ohne dich hätte ich das nie gesehen, danke!

Damit ist auch klar, warum es den AnkerEditor für das MainMenu nicht benötigt; er wird ja automatisch am oberen Rand dargestellt.
Und die Höhe des MainMenus in der Applikation ist natürlich 0! Es ist also alles in Ordnung!

Es wäre vielleicht geschickt, für das MainMenu den AnkerEditor im PopupMenu auszugrauen.
Dann wundert man sich nicht mehr über seine Meldung, dass er keine Komponente gefunden hat.

Danke!

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus auf Mac: MainMenu zur Laufzeit nicht sichtbar

Beitrag von wp_xyz »

WolfgangPascal hat geschrieben:
Mi 2. Dez 2020, 16:28
Es wäre vielleicht geschickt, für das MainMenu den AnkerEditor im PopupMenu auszugrauen.
Ich muss meinen Kommentar von eben, dass das bei Laz-trunk/Laz 2.0.10 auch schon so wäre, zurückziehen: Sobald ein weiteres Control auf dem Formular ist, wird der AnchorEditor im Kontextmenü des MainMenu als aktiv gezeigt.

Antworten