当前位置:编程学习 > Delphi >>

delphi树的使用

怎么实现树的增删改。

假设

父节点分别为:金融专业,财会专业

子节点是:金融专业对应的几个班级,财会专业对应的几个班级

现在就想增加,修改或者删除一个专业,或者是增加几个班级。

要怎么实现?

答案:

楼主看下我以前做的,对照一下,有些类似

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls;

type
TForm1 = class(TForm)
TreeView1: TTreeView;
DBGrid1: TDBGrid;
procedure FormShow(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure treev(treeview : Ttreeview);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses unit2;

{$R *.dfm}


procedure TForm1.TreeView1Click(Sender: TObject);
begin
if treeview1.Selected.Level = 0 then
begin
with data_m.ADOQ_grades do
begin
close;
sql.Clear;
sql.add('select grades.studentid,courseid,name,grade from grades,students where students.studentid = grades.studentid');
open;
end;
end
else
begin
with data_m.ADOQ_grades do
begin
close;
sql.Clear;
sql.add('select * from grades where studentid = :a');
parameters.ParamByName('a').Value := copy(treeview1.Selected.Text, 1 , 6);
open;
end;
end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
treev(treeview1);
end;

procedure TForm1.treev(treeview : Ttreeview);
VAR
node : TTreenode;
depart : string;
departid : string;
begin
with data_m.ADOQ_codes do
begin
close;
sql.Clear;
sql.Add('select * from codes');
open;
first;
node := treeview.Items.GetFirstNode;
while not eof do
begin
depart := fieldbyname('department').Value;
departid := fieldbyname('departmentid').Value;
node := treeview.Items.Add(node, depart);
with data_m.ADOQ_student do
begin
close;
sql.Clear;
sql.add('select * from students where departmentid =:a');
parameters.ParamByName('a').Value := departid;
open;
first;
while not eof do
begin
treeview.Items.AddChild(node, fieldvalues['studentid']+fieldvalues['name']);
next;
end;
end;
next;
end;
end;
treeview1.FullExpand;
end;

end.

上一个:Delphi求帮编程
下一个:delphi数据库问题ADODataSet

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,