AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Dynamischem Menü

Ein Thema von Satyr · begonnen am 9. Feb 2012 · letzter Beitrag vom 10. Feb 2012
 
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#1

Problem mit Dynamischem Menü

  Alt 9. Feb 2012, 16:41
Huhu,

ich habe ein Problem, das einfach klingt, mich aber vor Rätsel stellt.
Ich erstelle PopUp Menü und einer der Einträge hat ein Untermenü, das ich dynamisch generiere, wenn es aufgerufen wird. Soweit kein Problem, das mache ich mit folgendem Code:

Delphi-Quellcode:
      fuunc.ASQLite3Query1.Active := false;
      fuunc.ASQLite3Query1.SQL.Clear;
      fuunc.ASQLite3Query1.SQL.Add('SELECT * FROM kontinente;');
      fuunc.ASQLite3Query1.Active := true;
  
      while not fuunc.ASQLite3Query1.Eof do begin
       SubItem := TMenuItem.Create(Self);
       SubItem.Caption := fuunc.ASQLite3Query1.FieldByName('name').AsString;
       BookArena1.Add(SubItem);
       fuunc.ASQLite3Query1.Next;
      end;
Geht sicher auch Eleganter aber es funktioniert.

Problem ist jetzt, das dieses SubMenü mehrfach aufgerufen werden kann und bei jedem Aufruf diese Punkte im Untermenü generiert. Also würde ich vorher gern erst alle (alten) Punkte löschen. Und da taucht mein Problem auf. Gelöscht bekomme ich jeh einen Eintrag, indem ich ihn genau anspreche. Durch ein "Count" weiß ich auch wieviele Einträge ich habe. Aber genau dieser Wert ändert sich ja, wenn ich einen Eintrag lösche. Ich kann ihn also nicht in einer einfachen for Schleife verwenden.
Als Abhilfe habe ich folgendes versucht:
Delphi-Quellcode:
while BookArena1.Count > 0 do begin
 BookArena1.Delete(BookArena1.Count);
end;
Ich dachte damit wird immer der letzte Menüeintrag gelöscht, bis keine mehr da sind.

Aber bei Ausführung des Codes, bekomme ich eine Zugriffsverletzung und Delphi stürzt komplett ab.

Was mache ich falsch? Wie macht man es richtig?

Gruß,
Andreas
  Mit Zitat antworten Zitat
 


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 05:18 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