DataTimePicker默认值问题 怎样才能让DataTimePicker默认值为空而不是默认一个日期?或者有什么别的类似控件可用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //设置为空DateTimePicker2.Format := '';//注意引号内为alt+255//ENTER事件procedure TForm1.DateTimePicker2Enter(Sender: TObject);begin DateTimePicker2.Format := ''; DateTimePicker2.Date := Now;end; DataTimePicker的showcheckbox设置为true,不选的时候,值就是nil,选中才是设置的日期。 RXLIB中有一控件DateEdit或者我有好几种这样的控件,要我就找找 nit TBDateTime;interfaceuses Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, ComCtrls, StdCtrls, Graphics, Forms;type TTBDateTime = class(TCustomPanel) private { Private declarations } FColor: TColor; FDateTimePicker: TDateTimePicker; FEdit: TEdit; FText: String; FFormatString: String; FVisible: Boolean; FOnClick: TNotifyEvent; FOnChange: TNotifyEvent; FWidth: Integer; FOnEnter: TNotifyEvent; procedure SetColor(const Value: TColor); procedure OnDateChange(Sender: TObject); procedure OnEditChange(Sender: TObject); procedure OnControlEnter(Sender: TObject); procedure SetText(const Value: String); procedure SetFormatString(const Value: String); procedure SetVisible(const Value: Boolean); procedure SetWidth(const Value: Integer); protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published declarations } property Color: TColor read FColor write SetColor; property Width: Integer read FWidth write SetWidth Default 186; property Text: String read FText write SetText; property FormatString: String read FFormatString write SetFormatString; property Visible: Boolean read FVisible write SetVisible Default True; property OnChange: TNotifyEvent read FOnChange write FOnChange; property OnClick: TNotifyEvent read FOnClick write FOnClick; property OnEnter: TNotifyEvent read FOnEnter write FOnEnter; procedure SetFocus; override; end;procedure Register;implementationprocedure Register;begin RegisterComponents('Samples', [TTBDateTime]);end;{ TTBDateTime }constructor TTBDateTime.Create(AOwner: TComponent);begin inherited Create(AOwner); FColor := clWindow; FDateTimePicker := TDateTimePicker.Create(Self); FDateTimePicker.Parent := Self; FDateTimePicker.Top := 0; FDateTimePicker.Width := 136; FDateTimePicker.Left := 0; FDateTimePicker.OnChange := OnDateChange; FDateTimePicker.OnEnter := OnControlEnter; FEdit := TEdit.Create(Self); FEdit.Parent := Self; FEdit.BorderStyle := bsNone; FEdit.Top := 4; FEdit.Left := 3; FEdit.Width := 116; FEdit.Height := 14; FEdit.Color := FColor; FEdit.OnChange := OnEditChange; FEdit.OnClick := OnControlEnter; AutoSize := True; BevelOuter := bvNone; FFormatString := 'yyyy"-"mm"-"dd';end;destructor TTBDateTime.Destroy;begin FEdit.Free; FDateTimePicker.Free; inherited;end;procedure TTBDateTime.SetColor(const Value: TColor);begin FColor := Value; FEdit.Color := FColor; FDateTimePicker.Color := FColor;end;procedure TTBDateTime.OnDateChange(Sender: TObject);begin FEdit.Text := FormatDateTime(FFormatString, FDateTimePicker.Date);end;procedure TTBDateTime.SetText(const Value: String);begin FText := Value; FEdit.Text := FText;end;procedure TTBDateTime.OnEditChange(Sender: TObject);begin FText := FEdit.Text; if Assigned(FOnChange) then FOnChange(Self);end;procedure TTBDateTime.SetFormatString(const Value: String);begin FFormatString := Value;end;procedure TTBDateTime.SetVisible(const Value: Boolean);begin FVisible := Value; FEdit.Visible := FVisible; FDateTimePicker.Visible := FVisible; FDateTimePicker.Top := 0; FDateTimePicker.Left := 0; FEdit.Top := 4; FEdit.Left := 3;end;procedure TTBDateTime.SetWidth(const Value: Integer);begin FWidth := Value; FDateTimePicker.Width := FWidth; FEdit.Width := FWidth - 20;end;procedure TTBDateTime.OnControlEnter(Sender: TObject);begin if Assigned(FOnEnter) then FOnEnter(self);end;procedure TTBDateTime.SetFocus;begin inherited; FEdit.SetFocus;end;end.自己该该也可以,自己做一控件 delphi2009能否使用Expressbar 驱动IO模拟按键 C++转Delphi 看看我写的代码问题出在哪里? .dat文件用什么方法打开呢 BDE坏了必须重装系统????? 请问怎样实现在屏幕上移动画线 为什么我删除两次才能删掉一条记录? 为何针对ADO中的Clone出来的记录集的修改还是只改动了源记录集的内容? 如何在程序中列出oracle的数据表名称? 用READ和WRITE可以对文本中的内容进行读写,怎么才能删除文本中指定的行呢? About Cursor: 急急急!如何使用Imagelist delphi+SQL Server制作安装程序
DateTimePicker2.Format := '';//注意引号内为alt+255//ENTER事件
procedure TForm1.DateTimePicker2Enter(Sender: TObject);
begin
DateTimePicker2.Format := '';
DateTimePicker2.Date := Now;
end;
或者我有好几种这样的控件,要我就找找
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, ComCtrls, StdCtrls, Graphics, Forms;type
TTBDateTime = class(TCustomPanel)
private
{ Private declarations }
FColor: TColor; FDateTimePicker: TDateTimePicker;
FEdit: TEdit;
FText: String;
FFormatString: String;
FVisible: Boolean;
FOnClick: TNotifyEvent;
FOnChange: TNotifyEvent;
FWidth: Integer;
FOnEnter: TNotifyEvent;
procedure SetColor(const Value: TColor);
procedure OnDateChange(Sender: TObject);
procedure OnEditChange(Sender: TObject);
procedure OnControlEnter(Sender: TObject);
procedure SetText(const Value: String);
procedure SetFormatString(const Value: String);
procedure SetVisible(const Value: Boolean);
procedure SetWidth(const Value: Integer);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Color: TColor read FColor write SetColor;
property Width: Integer read FWidth write SetWidth Default 186;
property Text: String read FText write SetText;
property FormatString: String read FFormatString write SetFormatString;
property Visible: Boolean read FVisible write SetVisible Default True;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
property OnEnter: TNotifyEvent read FOnEnter write FOnEnter; procedure SetFocus; override;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Samples', [TTBDateTime]);
end;{ TTBDateTime }constructor TTBDateTime.Create(AOwner: TComponent);
begin
inherited Create(AOwner); FColor := clWindow; FDateTimePicker := TDateTimePicker.Create(Self);
FDateTimePicker.Parent := Self;
FDateTimePicker.Top := 0;
FDateTimePicker.Width := 136;
FDateTimePicker.Left := 0;
FDateTimePicker.OnChange := OnDateChange;
FDateTimePicker.OnEnter := OnControlEnter; FEdit := TEdit.Create(Self);
FEdit.Parent := Self;
FEdit.BorderStyle := bsNone;
FEdit.Top := 4;
FEdit.Left := 3;
FEdit.Width := 116;
FEdit.Height := 14;
FEdit.Color := FColor;
FEdit.OnChange := OnEditChange;
FEdit.OnClick := OnControlEnter; AutoSize := True;
BevelOuter := bvNone; FFormatString := 'yyyy"-"mm"-"dd';
end;destructor TTBDateTime.Destroy;
begin
FEdit.Free;
FDateTimePicker.Free; inherited;
end;procedure TTBDateTime.SetColor(const Value: TColor);
begin
FColor := Value; FEdit.Color := FColor;
FDateTimePicker.Color := FColor;
end;procedure TTBDateTime.OnDateChange(Sender: TObject);
begin
FEdit.Text := FormatDateTime(FFormatString, FDateTimePicker.Date);
end;procedure TTBDateTime.SetText(const Value: String);
begin
FText := Value; FEdit.Text := FText;
end;procedure TTBDateTime.OnEditChange(Sender: TObject);
begin
FText := FEdit.Text; if Assigned(FOnChange) then
FOnChange(Self);
end;procedure TTBDateTime.SetFormatString(const Value: String);
begin
FFormatString := Value;
end;procedure TTBDateTime.SetVisible(const Value: Boolean);
begin
FVisible := Value; FEdit.Visible := FVisible;
FDateTimePicker.Visible := FVisible; FDateTimePicker.Top := 0;
FDateTimePicker.Left := 0;
FEdit.Top := 4;
FEdit.Left := 3;
end;procedure TTBDateTime.SetWidth(const Value: Integer);
begin
FWidth := Value; FDateTimePicker.Width := FWidth;
FEdit.Width := FWidth - 20;
end;procedure TTBDateTime.OnControlEnter(Sender: TObject);
begin
if Assigned(FOnEnter) then
FOnEnter(self);
end;procedure TTBDateTime.SetFocus;
begin
inherited; FEdit.SetFocus;
end;end.
自己该该也可以,自己做一控件