[原创]delphi一次性批量在TScrollBox中显示N个复选框TCheckBox的源码

时间:2023-03-10 01:07:09
[原创]delphi一次性批量在TScrollBox中显示N个复选框TCheckBox的源码
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.

代码的效果图如下:

[原创]delphi一次性批量在TScrollBox中显示N个复选框TCheckBox的源码