Hola.
Coincido con
roman; me parece lógico crear los controles a partir de los datos almacenados.
Por que suponiendo, sólo suponiendo que se pudiera y justificara hacer semejante lío de código: ¿ Que pasa si mañana se le ocurre al administrador no vender más hamburguesas ?
En cambio es muy sencillo crear unos botones, o lo que sea de acuerdo a los ingredientes que el administrador agregue o elimine de un catálogo :
( Un ejemplo al vuelo )
Código Delphi
[-]
...
procedure TForm1.VentaOnClick(Sender: TObject);
begin
ShowMessage('¡Salga una '+ TButton(Sender).Caption +' caliente !');
end;
procedure TForm1.FormShow(Sender: TObject);
var
i: Integer;
begin
FoodDataSet.Open;
for i:= 0 to FoodDataSet.FieldCount - 1 do
begin
Fbt:= TButton.Create(nil); Fbt.Name:= 'Button'+IntToStr(i);
Fbt.Caption:= FoodDataSet.Fields[i].DisplayLabel;
Fbt.Width:= Canvas.TextWidth(FoodDataSet.Fields[i].DisplayLabel) + 15;
Fbt.Left:= 10;
Fbt.Top:= i * 40 + 5;
Fbt.OnClick:= VentaOnClick;
Fbt.Parent:= Self;
end;
end;
...
Un saludo.