AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TMainMenu auf TCard platzieren?

Ein Thema von PeterPanino · begonnen am 1. Jul 2021 · letzter Beitrag vom 5. Jul 2021
Antwort Antwort
Seite 1 von 2  1 2      
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 14:02
Delphi 10.4.2 VCL Application: Leider scheint es keine Möglichkeit zu geben, ein MenuBar (z.B. TMainMenu) auf einem TCard zu platzieren, wenn man z.B. jedem Panel eines CardPanel ein eigenes Menü spendieren möchte.

Man könnte zwar ein TActionMainMenuBar erstellen. Aber das ist viel zu umständlich, da man dafür extra einen ActionManager und für diesen wiederum eine oder mehrere ActionLists erstellen muss. Viel einfacher wäre es, wenn man ganz einfach eine MenuBar auf einem Panel platzieren könnte.

Oder kennt jemand einen Workaround dafür?
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#2

AW: TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 15:10
Nur so 'ne Idee: Auf jedem TCard ein eigenes TMainMenu platzieren und dieses beim Aktivieren der Card dem Form.MainMenu zuweisen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 15:34
Nur so 'ne Idee: Auf jedem TCard ein eigenes TMainMenu platzieren
Gute Idee. Leider kann man auf einem TCard kein TMainMenu platzieren.
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 15:39
Leider hat Embarcadero dem VCL TMainMenu die unsinnige EINSCHRÄNKUNG mit gegeben, dass man TMainMenu nur auf einer TForm platzieren kann. Re-Parenting funktioniert leider auch nicht!

Oder anders ausgedrückt: In der VCL fehlt eine MENUBAR Komponente, die auf jedem Container-Control platziert werden kann!
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.

Geändert von PeterPanino ( 1. Jul 2021 um 15:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#5

AW: TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 16:11
Leider hat Embarcadero dem VCL TMainMenu die unsinnige EINSCHRÄNKUNG mit gegeben, dass man TMainMenu nur auf einer TForm platzieren kann.
Na ja, ein TMainMenu ist (obwohl am Ende was Sichtbares rauskommt) erstmal kein TControl , sondern eine Non-Visible Component und kann somit (genau wie ein TPopupMenu ) auf einem TForm , TFrame oder TDataModule platziert werden. Man kann aber beliebig viele TMainMenu innerhalb eines solchen Containers platzieren und beim Wechsel der TCard dann das entsprechende dem MainMenu-Property des Forms zuweisen.

Insofern war meine Formulierung Auf jedem TCard ein eigenes TMainMenu platzieren vielleicht etwas missverständlich, sorry.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 16:40
... Man kann aber beliebig viele TMainMenu innerhalb eines solchen Containers platzieren und beim Wechsel der TCard dann das entsprechende dem MainMenu-Property des Forms zuweisen.
Das wäre nur dann sinnvoll, wenn das MainMenu visuell direkt an das Container-Control angrenzt. Wenn aber das Container-Control visuell vom TMainMenu abgesetzt ist bzw. sich noch andere Controls zwischen dem MainMenu und dem Container-Control befinden, dann kann der Benutzer den logischen Zusammenhang zwischen dem MainMenu (das sich ja an der oberen Seite der TForm befindet) und dem Inhalt des Container-Controls, auf das sich das MainMenu bezieht, nicht herstellen. Denn der Sinn und Zweck einer MenuBar in einem Container-Control ist genau der, dass für den Benutzer ein visueller Zusammenhang zwischen dem Container-Menü und dem Inhalt des Container-Controls besteht.
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#7

AW: TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 17:01
Das wäre nur dann sinnvoll, wenn das MainMenu visuell direkt an das Container-Control angrenzt.
Dann bist du aber nicht auf der Suche nach einem TMainMenu, denn das ist kein Control, sondern ein Teil des Formulars - ähnlich wie der Titel oder der Fenster-Rahmen. Das TMainMenu wird ja (außer bei Verwendung von VCL-Styles) nicht von der VCL gezeichnet, sondern intern von Windows.

Außerdem geht ein TMainMenu nur für das Form und nicht für dessen Child-Controls: https://docs.microsoft.com/en-us/win...etmenu#remarks
Zitat:
A menu can be assigned to any window that is not a child window.


Leider hat Embarcadero dem VCL TMainMenu die unsinnige EINSCHRÄNKUNG mit gegeben, dass man TMainMenu nur auf einer TForm platzieren kann.
Es handelt sich eben gerade nicht um eine Einschränkung seitens Embarcadero - das war ganz allein Microsoft!
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TMainMenu auf TCard platzieren?

  Alt 1. Jul 2021, 18:08
Schade, dass es TMenuBar nur in FMX gibt und nicht in der VCL :

https://i.imgur.com/ux6ocS1.png
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.

Geändert von PeterPanino ( 1. Jul 2021 um 21:58 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TMainMenu auf TCard platzieren?

  Alt 2. Jul 2021, 07:32
Ich verstehe das Argument mit dem Aufwand nicht.
Ich habe gerade in drei Minuten ein Cardpanel, zwei Cards mit jeweils einer ActionMainMenuBar und einem gemeinsamen ActionManager mit vier Actions zusammengeklickt.

Wo ist denn da der Aufwand?
Da hat es doch länger gedauert, den Eröffnungspost zu schreiben?!
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TMainMenu auf TCard platzieren?

  Alt 2. Jul 2021, 08:39
Ich verstehe das Argument mit dem Aufwand nicht.
Ich habe gerade in drei Minuten ein Cardpanel, zwei Cards mit jeweils einer ActionMainMenuBar und einem gemeinsamen ActionManager mit vier Actions zusammengeklickt.
Ob du's glaubst oder nicht - Programmieren besteht nun mal nicht nur aus "Zusammenklicken" ...
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz