![]() |
Zugrifffehler beim Verschieben von Einträgen eines TreeView
Hi ihr,
ich möchte Einträge in einem TreeView verschieben können. Dazu habe ich ein Popup-Menü mit folgenden Proceduren...
Delphi-Quellcode:
Die erste Procedure funktioniert wie gewünscht. Die zweite funktioniert nur in unter Unterzweigen, also nicht in höchster Ebene. Mir ist jedoch unklar, warum es zu einem Zugriffsfehler kommt. Hat jemand eine Idee und ggf. einen Lösungsvorschlag?
procedure TForm1.Hoch1Click(Sender: TObject);
begin if TreeView1.Selected<>nil then begin if TreeView1.Selected.Index > 0 then TreeView1.Selected.MoveTo(TreeView1.Selected.GetPrevSibling, naInsert) end else MessageDlg('Sie müssen zuerst einen Eintrag makieren.', mtInformation, [mbOk], 0); end; procedure TForm1.Runter1Click(Sender: TObject); begin if TreeView1.Selected<>nil then begin if TreeView1.Selected.Index < TreeView1.Selected.Parent.Count-1 then TreeView1.Selected.GetNextSibling.MoveTo(TreeView1.Selected, naInsert) end else MessageDlg('Sie müssen zuerst einen Eintrag makieren.', mtInformation, [mbOk], 0); end; Gruß Ben P.S.: Delphi 5 Standard |
Re: Zugrifffehler beim Verschieben von Einträgen eines TreeV
Hi,
wahrscheinlich ist "TreeView1.Selected.Parent" auf hoechster Ebene nil. |
Re: Zugrifffehler beim Verschieben von Einträgen eines TreeV
Stimmt, da ist der Fehler. Danke.
Habe schon in der Hilfe umgesucht, aber ich finde keine geschickte Möglichkeit, die Anzahl der Elemente in oberster Ebene zu bekommen. TreeView1.Count gibt es nicht und TreeView1.Items.Count spuckt die Gesamtanzahl von Elementen aus. Gruß Ben |
Re: Zugrifffehler beim Verschieben von Einträgen eines TreeV
Zitat:
Delphi-Quellcode:
function NodeLevelCounter(const AItems: TTreeNodes): Integer;
var lNode: TTreeNode; begin result := 0; lNode := AItems.GetFirstNode; while assigned(lNode) do begin Inc(Result); lNode := lNode.getNextSibling; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Caption := IntToStr(NodeLevelCounter(TreeView1.Items)); end; |
Re: Zugrifffehler beim Verschieben von Einträgen eines TreeV
Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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-2025 by Thomas Breitkreuz