Hallo, ich probier hier rum aber komm zu keinem ergebnis.
ich will ein mainmenu rekursiv mit daten aus einer
sql füllen.
übergeben wird eine id und parent_id sowie das caption. ist die parent_id nicht 0 (wäre rootebene) dann ist es ein unterelement des eintrages was als id den wert der parent_id hat. sollte klar sein.
Die ID des jeweiligen Eintrages sollte in der eigenschaft "Tag" gespeichert werden!
Rekursiv arbeite ich aber schon bei der
SQL Abfrage und es sollte auch aus bestimmten gründen so bleiben!
Könnte mir jemand helfen???
Hier mein Code für die
SQL-Abfrage :
Delphi-Quellcode:
procedure TMainForm.SetSQLValue(parent_id:integer);
var
TempQuery : TZReadOnlyQuery;
begin
TempQuery:=TZReadOnlyQuery.Create(nil);
TempQuery.Connection:=SqlConnection;
TempQuery.SQL.Text:='SELECT * FROM Werte WHERE parent_id='+inttostr(parent_id)+' ORDER BY parent_id ASC';
TempQuery.Open;
while not TempQuery.Eof do
begin
SetSQLValue(TempQuery.FieldByName('id').AsInteger); Add2Mainmenu(TempQuery.FieldByName('id').AsInteger,TempQuery.FieldByName('parent_id').AsInteger,TempQuery.FieldByName('description').AsString);
TempQuery.Next;
end;
FreeAndNil(TempQuery);
end;
und hier sollte das füllen des mainmenüs rein :
Delphi-Quellcode:
procedure TMainForm.Add2Mainmenu(Id: integer; Parent_Id: integer; Description: string);
var
NewItem: TMenuItem;
i,j: integer;
begin
if Parent_Id=0 then begin
// Ordner auf Rootebene setzen
NewItem:=TMenuItem.Create(Self);
NewItem.Caption:=Description;
NewItem.Tag:=Id;
Toolbar.Items.Add(NewItem);
end
else begin
// Elternelement suchen und Subeintrag setzen
???
end;
end;
Danke!