Thema: Delphi TTreeNode.Data verwenden

Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

TTreeNode.Data verwenden

  Alt 26. Apr 2003, 11:59
Ich versuche gerade, ein TStrings-Objekt in der Data-Eigenschaft eines TTreeNode zu speichern. Der Sinn ist, dass beim Selektieren des TreeNodes im TTreeView das TStrings-Objekt in einer Listbox angezeigt werden soll. Die Daten sollen erst ins TreeNode geschrieben werden, nachdem es erstellt wurde, also scheidet AddObject aus. Was ich jetzt versucht habe, ist abzufragen, ob bereits Datenn zu dem TreeNode gehören. Wenn nein, werden die Daten dem TreeNode zugeordnet, wenn ja, werden diese Daten in der Listbox dargestellt. Leider hab ich letzteres noch nicht hingekriegt, und ersteres kann ich aus dem selben Grund schlecht überprüfen.
Folgenden Code hab ich:
Delphi-Quellcode:
procedure TMainForm.files_ausgabeChange(Sender: TObject; Node: TTreeNode);
var
  UsedFunctions: TStringList;
type
  PStrings = ^TStrings;
begin
  //nur anfangen, falls Element auf der letzten Ebene
  if not Node.HasChildren then
  begin
    //falls keine Daten gespeichert sind
    if Node.Data = nil then
    begin
      //GetUsedFunctions liefert TStringList-Wert
      UsedFunctions := GetUsedFunctions(Node.Parent.Text,Node.Text,DefFunctionsList);
      Node.Data := @UsedFunctions;
      //used_ausgabe ist eine ListBox
      used_ausgabe.Items.AddStrings(UsedFunctions);
    end
    //die Daten sollen ausgelesen werden -> hier haperts
    else used_ausgabe.Items.AddStrings(TStrings(Node.Data^).Strings); //<--
  end
  else used_ausgabe.Clear;
end;
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat