Delphi递归加载树形(TreeView)列表
//采用递归方法,D7编译调试通过。
//数据采用ADOQuery读取,并将数据暂存在一个动态数组中,树形列表控件为TreeView。
procedure TForm1.LoadTreeInfo;
type
TInfo = record
ID, //代码
Name, //名称
SuperID //上级代码
: string;
//附加字段随需添加
end;
var
sql: string;
i, nCount: Integer;
arrInfo: array of TInfo;
NewNode: TTreeNode;
//加载一个节点
procedure InitOneNode(ANode: TTreeNode; AId: string);
var
k: Integer;
begin
for k := 0 to length(arrInfo) - 1 do
if arrInfo[k].SuperID = AId then
begin
NewNode := TreeView1.Items.AddChild(ANode, arrInfo[k].Name);
InitOneNode(NewNode, arrInfo[k].ID);
end;
end;
begin
TreeView1.Items.BeginUpdate;
TreeView1.Items.Clear;
sql := 'select ID, Name, SuperID from DictionaryTable order by ID';
ADOQuery1.Close;
ADOQuery1.SQL.Text := sql;
ADOQuery1.Open;
nCount := ADOQuery1.RecordCount;
if nCount > 0 then
begin
SetLength(arrInfo, nCount);
for i := 0 to nCount - 1 do
with arrInfo[i] do
begin
ID := Trim(ADOQuery1.FieldByName('ID').AsString);
Name := Trim(ADOQuery1.FieldByName('Name').AsString);
SuperID := Trim(ADOQuery1.FieldByName('SuperID').AsString); //无没有此字段,可根据上下级编码规则赋值
ADOQuery1.Next;
end;
end;
ADOQuery1.Close;
if nCount > 0 then
&nb
相关文档:
第一节 BDE、ADO、InterBase和dbExpress
Delphi中处理数据库主要有两种方法,也就是BDE、ADO,从Delphi 6.0开始还加入了一种dbExpress方法。 另外,Delphi还提供了专门处理Borland 公司自己的数据库产品InterBase 数据库的专门的方法。
BDE(Borland Databas Engine), 是Delph ......
DELPHI如何使用指针?
大家都认为,C语言之所以强大,以及其自由性,很大部分体
现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。Basic不
支持指针,在此不论。其实,Pascal语言本身也是支持指针的。从最初的Pasca ......
Delphi中截取文件名不含后缀部分 收藏
当文件名含有中文时,不能直接用LeftStr(FileName, Length(FileName - 4))或者用Pos来定位"."的位置来获取。因为中文一个字符相当与两个英文字符。这样截取往往还是把整个FileName都截下来了。
应当使用Copy函数,如下:
TmpFileLength := Pos(extFile, FileName); TmpFileName := ......
为了加快硬件的访问速度, 编译器通常要使用"数据对齐", 譬如:
//下面结构中: SizeOf(TRec) = 6; 因为 b 在这里也要占 2 字节.
TRec = record
a: Word;
b: Byte;
c: Word;
end
;
//下面结构中: SizeOf(TRec) = 16; 这里的 a 和 b 共占了 8 个字节.
TRec = record
a: Byte;
b: Byte;
c: Do ......
我使用delphi也不是很长时间,由于经常要用到SQL语句,总结了一些Delphi中使用SQL语句要注意的事项,归纳起来主要有一下几条:
一、空格不要漏:
我们经常要拼装SQL语句,特别是where条件句,在各个语句中别忘了头尾加上空格。因为在一个语句中我们会注意用空格分开关键字但是往往忘了头尾的空格。例如:
sSQL=' select ......