AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Node eindeutig identifizieren, JvPageListTreeView
Thema durchsuchen
Ansicht
Themen-Optionen

Node eindeutig identifizieren, JvPageListTreeView

Ein Thema von haentschman · begonnen am 24. Dez 2008 · letzter Beitrag vom 25. Dez 2008
 
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#23

Re: Node eindeutig identifizieren, JvPageListTreeView

  Alt 25. Dez 2008, 09:51
Zitat von haentschman:
hmmm... irgendwie habe ich das Gefühl daß wir uns mißverstehen.
Nicht 'wir uns', sondern 'Du mich'.

Zitat von haentschman:
...dümmlich ist nur, daß man an die Data Eigenschaft nur dran kommt, wenn man den Index des Knotens kennt.
Delphi-Quellcode:
Function IndexOfNode(aDataContents : Integer) : Integer;
Begin
  For Result:=0 to TreeView.Nodes.Count-1 do
    If Integer (TreeView.Nodes[Result].Data) = aDataContents Then
      Exit;
  Result := -1
End;
So bekommst Du dann den Index des Knotens. Also nix mit '...dümmlich..'
Du deklarierst deine ID als Konstanten, z.B.
Delphi-Quellcode:
Const
  IDDatenbankSeite = 0;
  IDBenutzereinstellungen = 1;
  ...
Dann fügst Du die Knoten in deinen Baum ein, wobei Du der 'Data'-Eigenschaft die ID-Konstanten zuweist.
Auf einen konkreten Knoten (z.B. den mit den Benutzereinstellungen) greifst Du dann so zu:
TreeView.Nodes[IndexOfNode(IDBenutzereinstellungen)].Selected := True Wenn Dir das zu blöd ist, merkst Du Dir die Indizes der einzelnen ID-Konstanten. Allerdings musst Du die dann bei Änderungen an der Baumstruktur erneut zuweisen:
Delphi-Quellcode:
Var
  idxDatenbankseite,
  idxBenutzereinstellungen : Integer;
...
  idxDatenbankseite := IndexOfNode(IDDatenbankSeite);
  idxBenutzereinstellungen := IndexOfMode(IDBenutzereinstellungen);
...
  TreeView.Nodes[idxBenutzereinstellungen].Selected := True
Übrigens hätte ich als Anwender ein Riesenproblem damit, das sich die Reihenfolge des Baumes ändert, wenn neue Eigenschaftsseiten hinzukommen. Anwender bevorzugen kleiche *Positionen* von Dingen als wenn sie in einer sortierten Liste jedesmal suchen müssen. Du hättest in unterschiedlichen Sprachen auch ein unterschiedliches Layout. Toll für den, der deine Anwendung in beiden Sprachen bedienen muss.

Obige vorgeschlagene Trennung von Position und Identifikation bleibt jedoch hiervon unberührt, da es die klar robustere Implementierung ggü. fest verdrahteten Index-Konstanten ist.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 13:00 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