我想在运行时从数据库创建按钮。例如我有一个表可以说用户。我需要创建与用户表中包含的按钮一样多的按钮。
下面的代码可以做到这一点。但是我有一个问题,它只给我最后一个按钮,或者将所有按钮都放在另一个按钮上,而我只能看到最后一个按钮。
我需要使按钮彼此相邻。
procedure TForm1.Button2Click(Sender: TObject);
var
Bt: TButton;
i: Integer;
begin
Query1.First;
while not Query1.Eof do
begin
i:=0;
Bt := TButton.Create(Self);
Bt.Caption := Query1.Fields[0].AsString;
Bt.Parent := Self;
Bt.Height := 23;
Bt.Width := 100;
Bt.Left := 10;
Bt.Top := 10 + i * 25;
i:= i+1;
Query1.Next;
end;
end;
我应该更改或添加什么?
您可以在i
每次循环迭代时重置计数器。在进入循环之前对其进行一次初始化:
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
Bt: TButton;
begin
Query1.First;
i := 0; // initialize the counter before you enter the loop
while not Query1.Eof do
begin
Bt := TButton.Create(Self);
Bt.Caption := Query1.Fields[0].AsString;
Bt.Parent := Self;
Bt.Height := 23;
Bt.Width := 100;
Bt.Left := 10;
Bt.Top := 10 + i * 25;
i := i + 1;
Query1.Next;
end;
end;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句