delphi一次性批量在TScrollBox中显示N个复选框TCheckBox的源码
Posted 游子日月长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 := 1; row := 1; recnum := 0; vspace := 15; //行间距 _left := 10; _top := 10; numPerCol:=10; //每列显示10个checkbox for i := 1 to 35 do begin inc(recnum); chk := TCheckBox.Create(self.ScrollBox1); chk.Parent := self.ScrollBox1; chk.Caption := IntToStr(i); chk.Tag := i; if (recnum mod numPerCol = 0) then begin chk.Left := _left * col + chk.Width * (col - 1); if col > 1 then chk.Top := _top + chk.Height * (row - 1) + vspace * (row - 1) else chk.Top := _top * (col) + chk.Height * (row - 1) + vspace * (row - 1); inc(col); row := 1; end else begin chk.Left := _left * col + chk.Width * (col - 1); if col > 1 then chk.Top := _top + chk.Height * (row - 1) + vspace * (row - 1) else chk.Top := _top * (col) + chk.Height * (row - 1) + vspace * (row - 1); inc(row); end; end; end; end.
代码的效果图如下:
以上是关于delphi一次性批量在TScrollBox中显示N个复选框TCheckBox的源码的主要内容,如果未能解决你的问题,请参考以下文章
Delphi的控件TScrollBox的问题,隐藏滚动条后, 这个不管用SendMessage咋办啊?? 上滚,下滚,上一页。。