我们不可把公司的组件放於这里发表, 和一般着作一样, 我们公司有这些组件的
版权所有的.假如你真的想学的话, 你可以叁看Delphi自带的VCL源码, 那本身已经是一个实
实在在的宝库, 或者到 http://www.sourceforge.net 叁与GPL软软行列, 那
里的高手不介意其他人叁看他们的作品的. 只要你也是按GPL的条款编程, 你是
可以自由地享用GPL下所有软件的.其馀的软件, 全都是有版权法所保护, 不可以未得版权所有者的书面同意下, 公
开分发的.可幸的是Delphi是支持Open Source(公开源码)的, Delphi本身的源码是高度
透明, 纵使Borland所写的说明书是如何不济, 透过多年来的经验和vcl的源代码, 许多第三方控件, 都能比Delphi原来的控件有过之而无不及.
但是第三控件, 通常都要用钱买的, 他们不会让你白白的用他们的作品的!
版权所有的.假如你真的想学的话, 你可以叁看Delphi自带的VCL源码, 那本身已经是一个实
实在在的宝库, 或者到 http://www.sourceforge.net 叁与GPL软软行列, 那
里的高手不介意其他人叁看他们的作品的. 只要你也是按GPL的条款编程, 你是
可以自由地享用GPL下所有软件的.其馀的软件, 全都是有版权法所保护, 不可以未得版权所有者的书面同意下, 公
开分发的.可幸的是Delphi是支持Open Source(公开源码)的, Delphi本身的源码是高度
透明, 纵使Borland所写的说明书是如何不济, 透过多年来的经验和vcl的源代码, 许多第三方控件, 都能比Delphi原来的控件有过之而无不及.
但是第三控件, 通常都要用钱买的, 他们不会让你白白的用他们的作品的!
所以希望看写前辈的
随便举例子就可以了
不需要把你门的项目拿出来
unit DatePick;interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, ComCtrls;type
TDatePickForm = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
mclCalendar: TMonthCalendar;
private
{ Private declarations }
public
{ Public declarations } end; TDateRangePickForm = class(TCustomForm)
private
FBeginDatePicker: TDateTimePicker;
FEndDatePicker: TDateTimePicker;
procedure CreateControls;
public
constructor Create(AOwner: TComponent); override;
end;function PickDateDlg(var ADate: TDate): Boolean;
function PickDateRangeDlg(var BeginDate, EndDate: TDate): Boolean;{ Obsoleted functions }function PickDateDialog(var ADate: TDate): Boolean;implementation{$R *.DFM}function PickDateDlg(var ADate: TDate): Boolean;
begin
Result := False;
with TDatePickForm.Create(nil) do
try
mclCalendar.Date := ADate;
if ShowModal = mrOk then
begin
ADate := mclCalendar.Date;
Result := True;
end;
finally
Free;
end;
end;function PickDateRangeDlg(var BeginDate, EndDate: TDate): Boolean;
begin
Result := False;
with TDateRangePickForm.Create(Application) do
try
if (BeginDate = 0) and (EndDate = 0) then
begin
FBeginDatePicker.DateTime := Now;
FEndDatePicker.DateTime := Now;
end
else begin
FBeginDatePicker.DateTime := BeginDate;
FEndDatePicker.DateTime := EndDate;
end;
if ShowModal = mrOK then
begin
BeginDate := Int(FBeginDatePicker.DateTime);
EndDate := Int(FEndDatePicker.DateTime) + 0.99999;
Result := True;
end;
finally
Free;
end;
end;function PickDateDialog(var ADate: TDate): Boolean;
begin
Result := PickDateDlg(ADate);
end;
{ TDateRangePickForm }constructor TDateRangePickForm.Create(AOwner: TComponent);
begin
inherited CreateNew(AOwner);
BorderStyle := bsDialog;
Position := poScreenCenter;
Caption := '选择日期';
Font.Name := '宋体';
Font.Size := 9;
Width := 237;
Height := 160;
CreateControls;
end;procedure TDateRangePickForm.CreateControls;
begin
FBeginDatePicker := TDateTimePicker.Create(Self);
FEndDatePicker := TDateTimePicker.Create(Self);
with TButton.Create(Self) do
begin
Parent := Self;
Left := 144;
Top := 104;
Width := 75;
Height := 21;
Cancel := True;
Caption := '取消';
ModalResult := 2;
TabOrder := 1;
end;
with TButton.Create(Self) do
begin
Parent := Self;
Left := 64;
Top := 104;
Width := 75;
Height := 21;
Caption := '确定';
Default := True;
ModalResult := 1;
TabOrder := 0;
end;
with TLabel.Create(Self) do
begin
Parent := Self;
Left := 16;
Top := 27;
Width := 54;
Height := 12;
Caption := '开始日期:';
end;
with TLabel.Create(Self) do
begin
Parent := Self;
Left := 16;
Top := 63;
Width := 54;
Height := 12;
Caption := '终止日期:';
end;
with FBeginDatePicker do
begin
Parent := Self;
Left := 80;
Top := 24;
Width := 121;
Height := 21;
DateFormat := dfShort;
DateMode := dmComboBox;
Kind := dtkDate;
ParseInput := False;
TabOrder := 2;
end;
with FEndDatePicker do
begin
Parent := Self;
Left := 80;
Top := 60;
Width := 121;
Height := 21;
DateFormat := dfShort;
DateMode := dmComboBox;
Kind := dtkDate;
ParseInput := False;
TabOrder := 3;
end;
with TBevel.Create(Self) do
begin
Parent := Self;
Left := 8;
Top := 8;
Width := 209;
Height := 89;
Shape := bsFrame;
end;
end;end.