數據庫菜單欄位 表名:Menu
id name Parentid
1 A 0
101 A1 1
102 A2 1
10101 AA1 101
2 B 0
201 B1 2
3 C 0
301 C1 3
30101 CC1 301Delphi介面上放置一MainMenu1,如何根據數據庫里的欄位動態加載到MainMenu1中,要求是A,B,C為一級菜單,A1,A2,B1,C1為二級菜單,相應AA1為A1的子菜單,其他類似,如何用遞歸實現,困擾了很久
數據庫循環雖能實現,但頻繁查詢不是好的方法,求遞歸實現方式
最好貼出實現代碼,十分感謝,希望有朋友運行成功后發出代碼,謝謝!數據連接組件ADOQuery1,
id name Parentid
1 A 0
101 A1 1
102 A2 1
10101 AA1 101
2 B 0
201 B1 2
3 C 0
301 C1 3
30101 CC1 301Delphi介面上放置一MainMenu1,如何根據數據庫里的欄位動態加載到MainMenu1中,要求是A,B,C為一級菜單,A1,A2,B1,C1為二級菜單,相應AA1為A1的子菜單,其他類似,如何用遞歸實現,困擾了很久
數據庫循環雖能實現,但頻繁查詢不是好的方法,求遞歸實現方式
最好貼出實現代碼,十分感謝,希望有朋友運行成功后發出代碼,謝謝!數據連接組件ADOQuery1,
解决方案 »
- query带参向数据表中添加数据的问题!
- 急!!!请问下面的C编写的DLL在DELPHI下如何调用!分不够再加
- 高分求救!!!,我在Delphi做一个访问Excel的类,不知道为什么老出问题
- DELPHI7中关于SQL库转为ACCESS库的代码问题 (急急)
- Delphi7中怎么做报表?Delphi7中好像没有QReport控件。
- 问题还没有解决!关于多线程的。解决者100分。复制链接即可
- 请教一个日期问题~~~
- 紧急求救!关于域局网的数据库应用程序移植到互联网的问题!
- 如何增加可修改的数据集字段?
- 关于统计的问题
- TChart控件用Canvas画股票K线的几个问题(见图)
- JNI如何调用Jar包啊?
这是生成treeview的帖子,你改成动态添加menu就行了
MainMenu的屬性處理還是不會,能貼出MainMenu的么,我好好看下,十分感謝了
procedure TForm1.FormCreate(Sender: TObject);
//var item: Tmenuitem;
var s: Tmenuitem;
begin
//item := Tmenuitem.Create(self);
//setM('0', item);
// edit1.Text := inttostr(n);
SetMenu(s);
end;
procedure TForm1.SetMenu(MainMenu: TMenuItem);
var
itm: TMenuItem;
pitm: TMenuItem; function FindParentMenu(id: string): TMenuItem;
var
i: Integer;
begin
//SetMenuItemTag; Result := nil;
for i := 0 to Mainmenu.Count - 1 do
begin
if Mainmenu.Items[i].Name = id then
begin
Result := Mainmenu.Items[i];
Break;
end;
end;
end;begin
MainMenu.Clear;
q.Close;
q.SQL.Clear;
q.SQL.Add(' SELECT ID,NAME,parentID FROM Menu order by parentID,id');
q.Open;
while not q.Eof do
begin
itm := TMenuItem.Create(self);
itm.Caption := q.FieldByName('NAME').AsString;
itm.Name:= q.FieldByName('ID').AsString;
//memo1.Lines.Add(q.FieldByName('parentID').AsString); if q.FieldByName('parentID').AsString = '0' then
begin
m.Items.Add(itm);
end
else
begin
pitm := FindParentMenu(q.FieldByName('ID').AsString);
pitm.Add(itm);
end;
q.Next;
end;end;
其中m為MainMemu1改寫的名字,q為ADOQuery1的別名
我感覺function 部分有錯,不知錯在哪,希望幫忙看下,十分感謝