表结构及记录
object tarea: TFDquery
Connection = FDConnection1
sql.Strings = (
‘select *‘
‘from tArea order by fParentCode‘)
left = 160
top = 240
end
object tv: TTreeVIEw
left = 0
top = 0
WIDth = 554
Height = 320
Align = alClIEnt
Indent = 19
Taborder = 1
Explicitleft = 40
Explicittop = 32
ExplicitWIDth = 121
ExplicitHeight = 97
end
代码
procedure TForm1.FormCreate(Sender: TObject);
var
nodes:ttreenodes;
node:ttreenode ;
CurItem,CurItem1:Ttreenode ;
nodestr:string;
lastparent,temp:string;
i,j:integer ;
begin
TV.Items.Clear;
nodes:=TV.Items;
Tarea.Active:=true;
node:=nodes.add(nil,Tarea.FIEldByname(‘fCode‘).Value+‘_‘+Tarea.FIEldByname(‘fname‘).Value);
Tarea.Next;
while NOT Tarea.Eof do
BEGIN
if Tarea.FIEldByname(‘fParentCode‘).Asstring=‘‘ then
nodes.add(nil,Tarea.FIEldByname(‘fCode‘).Value+‘_‘+Tarea.FIEldByname(‘fname‘).Value); //省份
if Tarea.FIEldByname(‘fParentCode‘).Asstring<>lastparent then
//当前记录 fParentCode跟上条记录 fParentCode 不相等,表明是换一个父代了
//需查找
begin
CurItem := TV.Items.GetFirstNode;
while CurItem <> nil do
begin
if copy( CurItem.Text,1,pos(‘_‘,CurItem.Text)-1) =Tarea.FIEldByname(‘fParentCode‘).Value then
begin
CurItem.Selected:=true;
break;
end;
CurItem := CurItem.GetNext;
end;
nodes.addCHILD(CurItem,Tarea.FIEldByname(‘fCode‘).Value+‘_‘+Tarea.FIEldByname(‘fname‘).Value); //
end;
if (Tarea.FIEldByname(‘fParentCode‘).Asstring<>‘‘)
AND
(Tarea.FIEldByname(‘fParentCode‘).Asstring=lastparent)
//当前记录 fParentCode跟上条记录 fParentCode 相等,表明是同一个父代了,直接添加就行
then
BEGIN
nodes.addCHILD(CurItem,Tarea.FIEldByname(‘fCode‘).Value+‘_‘+Tarea.FIEldByname(‘fname‘).Value); //
END;
lastparent:= Tarea.FIEldByname(‘fParentCode‘).Asstring;
Tarea.Next;
END;
nodes.GetFirstNode;
end;
end.
效果如下
以上是内存溢出为你收集整理的动手生成 Delphi xe DBTreeview 三级行政图树 省市县全部内容,希望文章能够帮你解决动手生成 Delphi xe DBTreeview 三级行政图树 省市县所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)