掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
FullCollapseを呼び出さないとTreeViewの内容が表示されない (ID:9339)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
普通は表示されますよね? ソースはこんな感じです function NodeNode(Node1,Node2:TTreeNode):string; begin if Assigned(Node2) then begin if Node1.Level>Node2.Level then result:='<' else if Node1.Level<Node2.Level then result:='>' else result:='='; end; end; function MakeNode(Str:String;Node:TTreeNode):TTreeNode; var N:TTreeNode; P:PBookMarkItem; begin Str:=C_FtoU(Str); if Ansipos(#13#10,Str)>0 then begin New(P); P^.URL:=CSRight(Str,#13#10); N:=Main.TagTreeView.Items.AddObject(Node,Thebsys.CSLeft(Str,#13#10),P); end else begin N:=Main.TagTreeView.Items.AddObject(Node,Str,nil); end; N.MoveTo(Node,naAddChild); result:=N; end; procedure TMain.WriteT(); var i:integer;Node1,Node2:TTreeNode; TagFile:string; SL1:TStringList; begin if TagTreeView.Items.Count>0 then begin tagfile := FPath+TemplateFile; SL1 := TStringList.Create; try Node1:=nil; Node2:=nil; for i:=0 to TagTreeView.Items.Count-1 do begin Node1:=TagTreeView.Items[i]; if i>0 then SL1.Add(NodeNode(Node1,Node2)); SL1.Add(C_UtoF(Node1.Text)); if Assigned(Node1.Data) then SL1.Add(C_UtoF(PBookMarkItem(Node1.Data)^.URL)); Node2:=Node1; end; if Node1.Level>0 then SL1.Add('>') else SL1.Add('='); SL1.SaveToFile(tagfile); finally SL1.Free; end; end; end; procedure TMain.ReadT(); var tagfile:string; i:integer; Node:TTreeNode; SL1:TStringList; Str:string; begin TagTreeView.Items.BeginUpdate; tagfile := FPath+TemplateFile; if FileExists(tagfile) = True then begin TagTreeView.Items.Clear; SL1 := TStringList.Create; try SL1.LoadFromFile(tagfile); TagTreeView.Items.Clear; Node:=nil; for i:=0 to SL1.Count-1 do begin if ansipos('<',SL1[i])=1 then begin Node:=MakeNode(CSRight(Str,#13#10),Node); Str:=''; end else if ansipos('>',SL1[i])=1 then begin MakeNode(CSRight(Str,#13#10),Node); Node:=(Node.Parent); Str:='' end else if ansipos('=',SL1[i])=1 then begin MakeNode(CSRight(Str,#13#10),Node); Str:='' end else Str:=Str+#13#10+SL1[i]; end; finally SL1.Free; TagTreeView.FullCollapse; TagTreeView.Items.EndUpdate; end; end; end; function C_FtoU(s:string):string; begin s:=StringReplace(s,'&eq','=',[rfReplaceAll]); s:=StringReplace(s,'&rg;','<',[rfReplaceAll]); s:=StringReplace(s,'&lf;','>',[rfReplaceAll]); s:=StringReplace(s,'&ad;','&',[rfReplaceAll]); result:=s; end; function C_UtoF(s:string):string; begin s:=StringReplace(s,'&;','&ad',[rfReplaceAll]); s:=StringReplace(s,'=','&eq',[rfReplaceAll]); s:=StringReplace(s,'<','&rg;',[rfReplaceAll]); s:=StringReplace(s,'>','&lf;',[rfReplaceAll]); result:=s; end; //お願いします
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.