掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TreeViewの展開 (ID:39525)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
type TMyNode = record URL: String; end; PMyNode = ^TMyNode; procedure TForm1.LoadBookMark(AFileName: String); var SL1: TStringList; intA, intLevelA, intB, intLevelB: Integer; strLine, strTitle: String; i, n: Integer; Node: TTreeNode; P: PMyNode; begin if FileExists(AFileName) = True then begin SL1 := TStringList.Create; try SL1.LoadFromFile(AFileName); // ブックマークは、 intLevelB := 0; // ノードの階層レベル,タイトル,URL Node := nil; // の形式で格納してある。 for i := 0 to SL1.Count - 1 do begin strLine := SL1.Strings[i]; intA := Pos(',', strLine); for n := Length(strLine) downto 1 do begin if strLine[n] = ',' then begin intB := n; Break; end; end; try intLevelA := StrToInt(Copy(strLine, 1, intA - 1)); except on EConvertError do begin ShowMessage('ブックマークの読み込みに失敗しました。'); Exit; end; end; // 読み込んだ設定ファイルをFolderに反映 strTitle := Copy(strLine, intA + 1, intB - intA - 1); New(P); P^.URL := Copy(strLine, intB + 1, Length(strLine) - intB); Node := TreeView1.Items.AddObject(Node, strTitle, P); if intLevelB > intLevelA then begin intLevelB := intLevelA; while Node.Level > intLevelA do begin Node.MoveTo(Node.Parent, naAdd); //この部分 end; end else if intLevelB < intLevelA then begin Node.MoveTo(Node.GetPrev, naAddChild); intLevelB := intLevelA; //この部分 end; end; // TreeView1.FullCollapse; //この部分 finally SL1.Free; end; end; end; // procedure TForm1.FormCreate(Sender: TObject); begin TreeView1.Tag := 0; LoadBookMark('Book.txt'); end; // procedure TForm1.Button1Click(Sender: TObject); begin if TreeView1.Tag=0 then begin TreeView1.FullCollapse; TreeView1.Tag := 1; end else begin TreeView1.FullExpand; TreeView1.Tag := 0; end; end; なんて試してみましたが、開いた状態になっていると思いますよ。 SL1.LoadFromFile('BookMark.txt'); Book.txt の中身
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.