Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Popup Menu - Untereinträge hinzufügen und löschen (https://www.delphipraxis.net/7085-popup-menu-untereintraege-hinzufuegen-und-loeschen.html)

Natalia 1. Aug 2003 09:33


Popup Menu - Untereinträge hinzufügen und löschen
 
Hi Leute, :)

ich möchte zu einem PopupMenu die Untereinträge dynamisch hinzufügen und dann wieder löschen.

Mit dem Hinzufügen klappt's:

Delphi-Quellcode:
   var NewItem : TMenuItem;
   
   for i:=0 to Query1.RecordCount-1 do
    begin
    NewItem := TMenuItem.Create(Self);
    NewItem.Caption:=Query1Feld1.AsString;
    MenuItem1.Add(NewItem);
    Query1.Next;
    end;
Aber wenn ich die Untereiträge mit z. B. diesem Code lösche:
Delphi-Quellcode:
for i:=0 to Query1.Count-1 do
   begin
    MenuItem1.Items[i].Clear;
    NewItem.Free;
    end;
bekomme ich eine Fehlermeldung "Menu außerhalb des zulässigen Bereichs".
Ich habe schon auch die andere Möglichkeiten ausprobiert. Vielleicht ist es einfach, aber ich komme nicht drauf. :oops:

Danke schon mal für alle Vorschläge! :)

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]

Alexander 1. Aug 2003 09:49

Re: Popup Menu - Untereinträge hinzufügen und löschen
 
Das sollte alle Items aus einem Untermenu (oder Hauptmenu) löschen:
Delphi-Quellcode:
    while SubMenu.Count > 1 do
     begin
      SubMenu.Items[SubMenu.Count-1].Free;
     end;
Hoffe das hilft ;-)

Natalia 1. Aug 2003 09:58

Re: Popup Menu - Untereinträge hinzufügen und löschen
 
Super, es funktioniert! :D

Ich habe nur geändert -> SubMenu.Count > 0.

Vielen Dank! :hi:

st2000 19. Aug 2003 08:27

Re: Popup Menu - Untereinträge hinzufügen und löschen
 
Hallo,

ich baue auch dynamische PopUps. Aber ich benutze dafür TActions. Und dort ist auch die enabled-Eigenschaft gespeichert.
Stehen alle auf enabled=true, aber bleiben grau !

Auch dann, wenn ich entweder

-explizit die menuitem.enabled:=true setze, oder
-TAction.enabled:=true setze

Es will einfach nicht enablen !

Weiss jemand, wie man das hinkriegt ?

GRuss,
ST2000 :freak:

st2000 19. Aug 2003 10:45

Re: Popup Menu - Untereinträge hinzufügen und löschen
 
Hallo, Alarm zurück, habs gefunden.

Lag nur daran, daß ich erstmal keine Eventhandler programmiert hatte.
Das veranlasst die TActions -ohne daß dies in der Hilfe dokumentiert wäre, oder einen Hint auslösen würde, grrrrr :-( -
dazu, trotz enabled=true-setting keinen Mucks zu "sagen"....

Gruss,
ST2000 :party:


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