![[原创]delphi一次性批量在TScrollBox中显示N个复选框TCheckBox的源码 [原创]delphi一次性批量在TScrollBox中显示N个复选框TCheckBox的源码](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
unit Unit1; interface uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type
TForm1 = class(TForm)
ScrollBox1: TScrollBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
numPerCol,col: Integer;
_left: Integer;
_top: Integer;
row: Integer;
recnum, vspace: Integer;
chk: TCheckBox;
begin
col := ;
row := ;
recnum := ;
vspace := ; //行间距
_left := ;
_top := ;
numPerCol:=; //每列显示10个checkbox for i := to do
begin
inc(recnum);
chk := TCheckBox.Create(self.ScrollBox1);
chk.Parent := self.ScrollBox1;
chk.Caption := IntToStr(i);
chk.Tag := i;
if (recnum mod numPerCol = ) then
begin
chk.Left := _left * col + chk.Width * (col - ); if col > then
chk.Top := _top + chk.Height * (row - ) +
vspace * (row - )
else
chk.Top := _top * (col) + chk.Height *
(row - ) + vspace * (row - ); inc(col);
row := ;
end
else
begin
chk.Left := _left * col + chk.Width * (col - ); if col > then
chk.Top := _top + chk.Height *
(row - ) + vspace * (row - )
else
chk.Top := _top * (col) + chk.Height *
(row - ) + vspace * (row - ); inc(row);
end;
end;
end; end.
代码的效果图如下: