Vielen Dank an Alle! Echt, ihr seid super!
klappt so, wie ich es mir vorstelle
Code:
procedure Tfmstart1.UniButton1Click(Sender: TObject);
var
i: Integer;
begin
UniServerModule.SQLTable1.Active := false;
UniServerModule.SQLTable1.TableName := 'artikelliste';
UniServerModule.SQLTable1.Active := true;
UniServerModule.SQLTable1.Open;
for i := Low( PanelArray) to High(PanelArray) do
begin
PanelArray[i].Free;
end;
UniServerModule.SQLTable1.First;
For i := 1 to UniServerModule.SQLTable1.RecordCount do
begin
//Panel erstellen
PanelArray[i] := TUniPanel.Create(self);
PanelArray[i].Parent := UniPanel1;
PanelArray[i].SetBounds(0,100*i -100,UniPanel1.Width,100);
PanelArray[i].Name := 'ArrayPanel' + IntToStr(i);
//TPanel in der höhe erweitern
UniPanel1.Height := UniPanel1.Height + PanelArray[i].Height;
//Button auf erstellten Panel erstellen
ButtonArray[i] := TUniButton.Create(self);
ButtonArray[i].Parent := PanelArray[i];
ButtonArray[i].SetBounds(PanelArray[i].Width - 80 , PanelArray[i].Height - 30 ,75,25);
ButtonArray[i].Caption := 'Warenkorb';
//ButtonArray[i].OnClick := muss noch erstellt werden
//Label setzen und Namen aus Datenbank definieren
ArtNameArray[i] := TUniLabel.Create(self);
ArtNameArray[i].Parent := PanelArray[i];
ArtNameArray[i].SetBounds(10, 10 ,100,13);
ArtNameArray[i].Caption := UniServerModule.SQLTable1.fieldByName('Hersteller').AsString + ' ' + UniServerModule.SQLTable1.fieldByName('ArtBZ').AsString;
ArtNrArray[i] := TUniLabel.Create(self);
ArtNrArray[i].Parent := PanelArray[i];
ArtNrArray[i].SetBounds(10, ArtNameArray[i].Top + 20, 50, 13);
ArtNrArray[i].Caption := UniServerModule.SQLTable1.fieldByName('ArtNr').AsString;
//Next zeile
if not UniServerModule.SQLTable1.EOF then
begin
UniServerModule.SQLTable1.Next;
end;
end;
end;