Frage

Auf meiner Form habe ich eine IWTreeView und zwei Tasten. Eine Taste löscht einige IWTreeViewItems, die anderen Versionen der Form:

procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
  IWTreeView1.Items[0].Subitems.Clear;
end;

procedure TIWForm1.IWButton2Click(Sender: TObject);
begin
  Release;
end;

Loslassen die Form nach dem IWTreeViewItems Löschen verursacht eine Ausnahme:

  

Fehlermeldung durch die erhöhte   Anwendung: Zugriffsverletzung auf   Adresse 004E0D8A in Modul   'TryTree.exe'. Lesen der Adresse   00000000

Wenn es eine andere Form aktiv ist und die Anwendung ist nicht von dieser Form Release beendet, ist die Fehlermeldung:

  

Fehlermeldung durch die erhöhte   Anwendung: Listenindex aus   Grenzen (-1)

Mit IntraWeb 9.0.42 (wegen der TMS Kontrollen und Delphi 2006 als TMS hat mit 10.0.17 und delphi nicht getestet 2006).

Ich habe versucht, in Form IWTreeView1.ClearAll zerstören, was überhaupt nicht helfen.

War es hilfreich?

Lösung

Statt SubItems.Clear ich jetzt verwenden

for i := IWTreeView1.Items[0].SubItems.Count-1 downto 0 do begin
    TIWTreeViewItem(IWTreeView1.Items[0].SubItems[i]).Free;
end;

Das funktioniert. Öffnen Sie immer noch nach besseren Lösungen, vielleicht auch nicht eine Schleife durch alle Unterpunkte beteiligt sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top