Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler mit TreeView (https://www.delphipraxis.net/26125-fehler-mit-treeview.html)

gerritlober 18. Jul 2004 20:22


Fehler mit TreeView
 
Hi,
kann mir jemand sagen, wo hier der Fehler liegt?

Delphi-Quellcode:
procedure TMainWindow.FormShow(Sender: TObject);
var f: Textfile;
    text: String;
    Node: TTreeNode;
begin
  AssignFile(f, 'Theme.dat');
  if not DirectoryExists('Data') then MkDir('Data');
  if FileExists('Theme.dat') then Reset(f)
  else Rewrite(f);
  while not EOF(f) do begin
    Readln(f, text);
    trim(text);
    Node.Text := text;
    if tvChoice.Items.Count = 0 then
      tvChoice.Items.AddFirst(Node, text)
    else
      tvChoice.Items.Add(Node, text);
  end;
  CloseFile(f);
end;

rantanplan99 18. Jul 2004 20:57

Re: Fehler mit TreeView
 
Probiers mal hiermit:

Delphi-Quellcode:
procedure TMainWindow.FormShow(Sender: TObject);
var f: Textfile;
    text: String;
    Node: TTreeNode;
begin
  AssignFile(f, 'Theme.dat');
  if not DirectoryExists('Data') then MkDir('Data');
  if FileExists('Theme.dat') then Reset(f)
  else Rewrite(f);
  while not EOF(f) do begin
    Readln(f, text);
    trim(text);

//  AddFirst brauchst du nicht.
    Node := tvChoice.Items.Add(nil, text);
//  Node ist dein neu ersteller Knoten und der Knoten wird als Knid-Knoten von 'nil' eingefügt, also ganz oben
  end;
  CloseFile(f);
end;

gerritlober 18. Jul 2004 21:32

Re: Fehler mit TreeView
 
Danke, und wie bekomme ich heraus, welches Selektiert ist, ob überhaupt eins selektiert ist und wie bekomme ich die selektierung weg?

rantanplan99 19. Jul 2004 07:54

Re: Fehler mit TreeView
 
Die Online-Hilfe sagt dazu:

Delphi-Quellcode:
property Selected: TTreeNode;

property SelectionCount: Cardinal;
property Selections[Index: Integer]: TTreeNode;

oki 19. Jul 2004 08:52

Re: Fehler mit TreeView
 
Hi,

der zuletzt eingefügte Knoten ist danach immer der selectierte Knoten.

Du kannst generell einen Knoten zwangsweise selectieren, indem du diesem selected zuweist, oder den selectierten Knoten ermitteln in dem du TreeView.Selected abfragst. Hier wird dir der selectierte Knoten zurückgeliefert.

Grundsätzlich empfehle ich dir in deinen Code einen try-finally-Block einzufügen. Am Besten try hinder Reset/Rewrite und CloseFile in finally end. Somit ist sichergestellt, dass dein File auch bei einer Exception in der Bearbeitungsschleife sicher geschlossen wird.

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz