Einzelnen Beitrag anzeigen

TriphunEM

Registriert seit: 8. Jan 2004
147 Beiträge
 
#1

Mainmenu rekursiv aus SQL füllen!

  Alt 11. Dez 2005, 16:34
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!
  Mit Zitat antworten Zitat