Witam!
Mam dataseta, który pobiera listę kolumn z których utworzona ma zostać tabela i wygląda to mniej więcej tak:
var
Backlog_Board: TBoard;
Analiza_Board: TBoard;
Programowanie_Board: TBoard;
Testy_Board: TBoard;
Wdrozenie_Board: TBoard;
procedure JakasTam;
var
ColumnPanel: TPanel;
ColumnGroupName: string;
Column1_Name: string;
Column1_Limit: integer;
Column2_Name: string;
Column2_Limit: integer;
begin
while not FDSKPQuery.EOF do
begin
// Tworzymy dynamicznie panel na komponencie ScrollBox1
ColumnPanel := TPanel.Create(ScrollBox1);
ColumnPanel.Visible := False;
ColumnPanel.Parent := ScrollBox1;
ColumnPanel.Width := 236;
ColumnPanel.Left := ColumnPanel.Width * FDSKPQuery.RecNo;
ColumnPanel.Align := alLeft;
ColumnPanel.AlignWithMargins := True;
ColumnPanel.BevelKind := bkFlat;
ColumnPanel.BevelOuter := bvNone;
ColumnPanel.ParentBackground := False;
ColumnPanel.Name := 'pnlBoardColumn_' + IntToStr(FDSKPQuery.RecNo);
ColumnPanel.Caption := '';
ColumnGroupName := FDSKPQuery.FieldByName('Group_Name').AsString;
Column1_Name := FDSKPQuery.FieldByName('Column1_Name').AsString;
Column1_Limit := FDSKPQuery.FieldByName('Column1_Limit').AsInteger;
Column2_Name := FDSKPQuery.FieldByName('Column2_Name').AsString;
Column2_Limit := FDSKPQuery.FieldByName('Column2_Limit').AsInteger;
// Problemowa linijka
Backlog_Board := TBoard.Create(ColumnPanel, gHistoryjka_PokazZglaszajacego, gHistoryjka_PokazTytulZgloszenia, ColumnGroupName, Column1_Name, Column2_Name, Column1_Limit, Column2_Limit);
FDSKPQuery.Next;
end;
Tutaj pojawia się problem...
Backlog_Board jest to definicja klasy
Backlog_Board: TBoard;
Problem w tym, że chciałbym stworzyć tyle klas, ile utworzonych dynamicznie paneli i przydzielać im nazwy ze właściwości
ColumnPanel.Name
czyli coś takiego:
while not FDSKPQuery.EOF do
begin
JakasTablicaKlas[FDSKPQuery.RecNo] := TBoard.Create(ColumnPanel, gHistoryjka_PokazZglaszajacego, gHistoryjka_PokazTytulZgloszenia, ColumnGroupName, Column1_Name, Column2_Name, Column1_Limit, Column2_Limit);
FDSKPQuery.Next;
end;
Mam nadzieję, że coś takiego jest możliwe, bo jak nie to będę w czarnej....