因处理数据,需要给用户提供日期选择,日历制作方法如下。
一,选择Delphi或其他编程,布置窗体界面如下
31个日期按钮,不需要手工创建,通过代码产生控件数组,生成31个选项按钮。
在窗体show事件里,写代码如下
声明变量
var
sbtns:array[1..31] of TSpeedButton;//用于创建按钮控件数组
n,ncount,x,y,a,b,v,leftv,topv:word;
show事件代码
procedure TForm1.FormShow(Sender: TObject);
begin
ncount:=31;
leftv:=30;
topv:=30;
x:=40;
y:=40;
a:=0;
b:=0;
v:=3;
for n:=1 to ncount do
begin
sbtns[n]:=TSpeedButton.create(self);
sbtns[n].name:='sBtn' + inttostr(n);
sbtns[n].Parent:=self;
sbtns[n].Left:=leftv + a* x;
sbtns[n].top:=topv + b * y;
sbtns[n].Width:=x + v;
sbtns[n].Height:=y + v;
sbtns[n].Caption:=inttostr(n);
sBtns[n].OnClick:=BtnDay_Click;
sBtns[n].Font.Size:=11;
if a<5 then
a:=a+1
else
begin
a:=0;
b:=b+1;
end;
end;
end;
二,设置背景图片
可用shape图形作按钮的背影图片,底色设白色,边框颜色根据喜好设置。
程序运行,创建31个按钮在这个shape图形上,效果如下
三,编写click公共事件。
用户选了哪一天,需要提示结果,所以需要编写事件代码
procedure TForm1.BtnDay_Click(sender:tobject);
var
obj:TSpeedbutton;
begin
obj:=TSpeedbutton(sender);
application.MessageBox(pchar('你点击了' + #13 + obj.Caption + ' 号'),pchar('提示'),MB_OK);
end;
程序运行效果如下
窗口皮肤颜色,可以根据喜好设置,比如下面蓝色
四,程序关键总结
数组按钮代码
类数组:=按钮类.Create(self)
这是产生按钮数组的关键。
然后代码设置他的坐标位置和大小,代码给控件设置日期值(哪一天,几号)。
Delphi语言很优美!