這是事件代碼:
procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
var
s1,s2:string;
node1:ttreenode;
begin
{要去掉原來的假裝子節點的空格值}
//showmessage(node.Item[0].text);
if trim(node.Item[0].Text)='' then
begin //也就是說執行一次之后就有記錄在那里了,你要是沒有這個begin end限制的話會再在下面添加一模一樣的記錄。這是不需要觸發執行的。
node.Item[0].delete;
s1:=copy(node.Text,1,posex('_',node.Text,1)-1); //從第一個位置找,找到‘——’前面的位置為止。
//showmessage(s1);
adoquery1.Close;
adoquery1.SQL.Text:='select * from sys_menu where parentnodeid=:p1 ';
adoquery1.Parameters.ParamByName('p1').Value:=s1;
adoquery1.open;
while not adoquery1.Eof do
begin
s1:=trim(adoquery1.FieldByName('menuID').asstring);
s2:=trim(adoquery1.FieldByName('menutitle').AsString);
node1:=treeview1.Items.AddChild(node,s1+'_'+s2);
if (adoquery1.FieldByName('isparentflag').asinteger=1) then
begin
treeview1.Items.AddChild(node1,s1+'_'+s2);
end;
adoquery1.Next;
end;
end;
end;
這是代碼做出來的效果:

也就是說第三層不對。
是不是因為treeview1.item[0].text=''這個判斷的原因、?
要怎么改?
uj5u.com熱心網友回復:
//showmessage(s1); 取得的s1對不對?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/122355.html
標籤:數據庫相關
上一篇:求教
下一篇:delphi 陣列洗掉記錄
