怎么把TreeView里的内容存储??(50分)

  • 主题发起人 主题发起人 jh924
  • 开始时间 开始时间
J

jh924

Unregistered / Unconfirmed
GUEST, unregistred user!
我用控件TreeView做了一个小程序,希望TreeView里的内容能写入到数据库里面。Edit1用
来输入“分数项”,Edit2输入“分数项占上级的比例”,Edit1的内容将显示在TreeView
中,界面只有TreeView1,Edit1,Edit2和增加删除两个按纽。
现在遇到一个问题就是:我能把TreeView里的Items存入都数据库中,可是对Edit2里输入
的比例却不知道怎么写入都数据库中,请各位高手能帮帮忙,很急!!!
 
TreeView1.SaveToFile('c:/test.txt');
 
能不能说清楚点,举个例子!!!
 
我用了TreeView1,Edit1,Edit2,还有"添加""删除"2个按纽,添加的源程序:
begin//根结点名称已经给出,所以不用考虑给给根结点赋值,用Edit1给子接点赋值
TreeView1.SetFocus;
TreeView1.Items.AddChild(TreeView1.Selected,Edit1.Text+Edit2.text);
TreeView1.Selected.Expand(True);
end;
删除的源程序:
begin
TreeView1.SetFocus;
TreeView1.Selected.Delete;
TreeView1.Selected.Expand(True);
end;
分数项名称:Edit1
占上级分数项百分比: Edit2
运行的时候Edit2用来填写百分数,这样生成一个树.
我现在想把这棵树存储到SQL中,我写了一段程序,
var
i,I_id,Parent_I_id:integer;
I_name:string;
begin
for i:=0 to TreeView1.Items.Count-1 do
begin
I_id:=TreeView1.Items.Index;
Parent_I_id:=TreeView1.Items.Parent.Index;
I_name:= TreeView1.Items.Text;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('exec items_info "1",I_id,I_name,Parent_I_id, "2"');
ADOQuery3.ExecSQL;
end;
end;
我知道我写错了,所以上来求救,希望各位高手能帮帮我!!!非常感谢
 
用TreeView的SaveFile将其保存至文本文件
 
我也不太明白TREEVIEW控件的用法,不知道treeview1.items.data怎么用?
 
和MFC类似VCL也可以串行化对象,如下,对任何VCL对象有效,TreeView1.txt为二进制文件
////////////////////
// 写
procedure TForm1.Button1Click(Sender: TObject);
var
F: TFileStream;
begin
F:=TFileStream.Create('c:/TreeView.txt',fmCreate or fmShareCompat);
F.WriteComponent(TreeView1);
F.Free;
end;

////////////////////
// 读
procedure TForm1.Button2Click(Sender: TObject);
var
F:TFileStream;
begin
F:=TFileStream.Create('c:/TreeView.txt',fmOpenRead or fmShareDenyWrite);
F.ReadComponent(TreeView1);
F.Free;
end;
至于treeview1.items.data是特TTreeView类为每一个Node提供的附加属性,是Pointer
类型,你可以根据需要存入任何变量甚至是类
 
后退
顶部