Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Gibt es in einer Form eine Liste der PopUp Menus (https://www.delphipraxis.net/203840-gibt-es-einer-form-eine-liste-der-popup-menus.html)

Amateurprofi 30. Mär 2020 22:01

Gibt es in einer Form eine Liste der PopUp Menus
 
Mit
Delphi-Quellcode:
for I:=0 to ControlCount-1 do
   S:=S+Controls[I].Name+#13;
ShowMessage(S);
kann ich die in einer Form enthaltenen Controls auflisten

PopUp-Menus sind da nicht enthalten.

Gibt es eine Möglichkeit, ähnlich wie bei Controls, eine Liste der vorhandenen PopUp-Menus auszuwerten?

Redeemer 30. Mär 2020 22:30

AW: Gibt es in einer Form eine Liste der PopUp Menus
 
Was du suchst ist Components, das enthält alle Komponenten. Controls enthält alle Steuerelemente, also sichtbare, die sich in einem Parent befinden. Und ein PopupMenü ist nicht sichtbar sondern eins von diesen Dingern, die zur Entwurfszeit nur als kleines Quadrat mit Text auftauchen, und die auch kein Parent haben - man kann sie ja nur auf der Form, aber sonst nirgendwo rein schieben. Siehe OH.

himitsu 31. Mär 2020 09:47

AW: Gibt es in einer Form eine Liste der PopUp Menus
 
Dein Controls ist ja Self.Controls, was Alles an der Form rausgibt.
Was z.B. auf einem Panel liegt, ist dort nicht drin, sondern in dem Panel. Und dazu noch das Erwähnte, mit mit den nur "Sichtbaren", also was nicht sichbar ist (nein, Visible=False ist nicht gemeint) fehlt da natürlich auch.

x.Controls : TWinControl -> y.Parent = x -> alle sichtbaren Komponenten direkt auf der Komponente

x.Components : TComponent (inkl. TWinControl und den TPopupMenü's auf der Form) -> y.Owner = x -> alles was mit Ty.Create(x) erstellt wurde ... und alles was im FormDesigner draufgepackt wurde, hat als Besitzer die Form

Amateurprofi 31. Mär 2020 10:16

AW: Gibt es in einer Form eine Liste der PopUp Menus
 
Zitat:

Zitat von Redeemer (Beitrag 1460878)
Was du suchst ist Components, das enthält alle Komponenten. Controls enthält alle Steuerelemente, also sichtbare, die sich in einem Parent befinden. Und ein PopupMenü ist nicht sichtbar sondern eins von diesen Dingern, die zur Entwurfszeit nur als kleines Quadrat mit Text auftauchen, und die auch kein Parent haben - man kann sie ja nur auf der Form, aber sonst nirgendwo rein schieben. Siehe OH.

Danke, Redeemer.
Genau danach suchte ich.

Amateurprofi 31. Mär 2020 10:22

AW: Gibt es in einer Form eine Liste der PopUp Menus
 
Zitat:

Zitat von Frühlingsrolle (Beitrag 1460879)
Mit ddr Funktion GetMenu() bekommst du das gesuchte PopupMenu direkt - zumindest dessen Handle (HMENU).

Nein.
GetMenu() liefert das Handle des Menus, dass dem Fenster zugewiesen ist und nicht ein PopUp-Menu.

Amateurprofi 31. Mär 2020 10:24

AW: Gibt es in einer Form eine Liste der PopUp Menus
 
Zitat:

Zitat von himitsu (Beitrag 1460892)
Dein Controls ist ja Self.Controls, was Alles an der Form rausgibt.
Was z.B. auf einem Panel liegt, ist dort nicht drin, sondern in dem Panel. Und dazu noch das Erwähnte, mit mit den nur "Sichtbaren", also was nicht sichbar ist (nein, kein Visibe=False) fehlt da natürlich auch.

x.Controls : TWinControl -> y.Parent = x -> alle sichtbaren Komponenten direkt auf der Komponente

x.Components : TComponent (inkl. TWinControl und den TPopupMenü's auf der Form) -> y.Owner = x -> alles was mit Ty.Create(x) erstellt wurde ... und alles was im FormDesigner draufgepackt wurde, hat als Besitzer die Form

Danke, himitsu für die Erläuterungen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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