![]() |
Submenu Einträge löschen
Hallo
ich habe ein Problem beim Löschen der Items eines Submenus. Hier mein Quellcode:
Code:
Ich wollte eigentlich die Items mit Clear löschen was aber irgendwie nicht geht. Wie muss ich sie dann löschen??
procedure TEditForm.eigeneBefehle2Click(Sender: TObject);
var Ini: TIniFile; NeuesMenuItem : TMenuItem; i, int : Integer; begin stringliste2 := tStringList.Create; try Ini:=TIniFile.Create(ExtractFilePath(ParamSTr(0))+'daten\config\befehle.dat'); Ini.ReadSection('befehle', stringliste2); // eigeneBefehle2.Clear; for i:=0 to stringliste2.Count -1 do begin NeuesMenuItem := TMenuItem.Create(Self); NeuesMenuItem.Caption := stringliste2[i]; NeuesMenuItem.Hint := stringliste2[i]; NeuesMenuItem.OnClick := unsicht2Click; eigeneBefehle2.Add(NeuesMenuItem); end; if (eigeneBefehle2.Items[0].Caption = '') then eigeneBefehle2.Items[0].Destroy; finally Ini.Free; end; end; (Wenn ich sie mit clear löschen und dann wieder alle Items einfüge, so will das Submenü nicht aufgehen!) Danke schon mla |
Moin Alexander,
probiers doch mal so (statt Clear):
Code:
BTW:
while eigeneBefehle2.Count > 0 do
begin eigeneBefehle2.Items[eigeneBefehle2.Count-1].Free; end; Du hast da auch Destroy verwendet, nimm' da lieber mal Free; |
Versuche mal folgenden Ansatz:
Code:
var
NeuesMenuItem, DelItem: TMenuItem; begin DelItem := NeuesMenuItem.Items[0]; NeuesMenuItem.Remove(NeuesMenuItem.Items[0]); DelItem.Free; end; |
Danke an euch beide
Ich habe Christians Lösung genommen, bloß für
Code:
while eigeneBefehle2.Count > 0 do
Code:
genommen, da anscheinend immer 1 Item da sein muss, sonst kann er keine neuen hinzufügen. Danke
while eigeneBefehle2.Count > 1 do
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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 by Thomas Breitkreuz