我一个朋友近日用Delphi写了一个控件 就两个文件一个控件源文件一个是 *.dcu文件
我想用在bcb下 但不是太懂Object Pascal 想问问高手如何 将这个控件转成BCB的控件
========PAS的源文件如下==========
unit DBDateTimePicker;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, DB, DBCtrls;
type
TDBDateTimePicker = class(TDateTimePicker)
private
{ Private declarations }
FAllowChange: Boolean;
FDataLink: TFieldDataLink;
function GetDataField: string;
function GetDataSource: TDataSource;
procedure SetDataField(const Value: string);
procedure SetDataSource(Value: TDataSource);
procedure DataChange(Sender: TObject);
procedure Change(Sender: TObject);
procedure CMExit(var Message: TWMNoParams); message CM_EXIT;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(Aowner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property DataField: string read GetDataField write SetDataField;
property DataSource: TDataSource read GetDataSource write SetDataSource;
end;
procedure Register;
implementation
constructor TDBDateTimePicker.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDataLink:=TFieldDataLink.Create;
FDataLink.OnDataChange:=DataChange;
OnChange:=Change;
FAllowChange:=True;
end;
destructor TDBDateTimePicker.Destroy;
begin
FDataLink.OnDataChange:=nil;
FDataLink.Free;
inherited Destroy;
end;
procedure TDBDateTimePicker.DataChange(Sender: TObject);
begin
if FDataLink.Field=nil then Self.Date:=0
else
if FAllowChange then Self.Date:=FDataLink.Field.AsDateTime;
end;
procedure TDBDateTimePicker.Change(Sender: TObject);
begin
with FDataLink do begin
FAllowChange:=False;
if not editing then Edit;
end;
FDatalink.Field.AsDateTime:=self.Date;
FAllowChange:=True;
end;
procedure TDBDateTimePicker.CMExit(var Message: TWMNoParams);
begin
try
FDataLink.UpdateRecord;
except
on Exception do SetFocus;
end;
inherited;
end;
function TDBDateTimePicker.GetDataField: string;
begin
Result:=FDataLink.FieldName;
end;
function TDBDateTimePicker.GetDataSource: TDataSource;
begin
Result:=FDataLink.DataSource;
end;
procedure TDBDateTimePicker.SetDataField(const Value: string);
begin
FDataLink.FieldName:=Value;
end;
procedure TDBDateTimePicker.SetDataSource(Value: TDataSource);
begin
FDataLink.DataSource:=Value;
end;
procedure Register;
begin
RegisterComponents(Data Controls, [TDBDateTimePicker]);
end;
end.
新建一Package,存盘,把这个PAS文件拷到同一目录下,
ADD这个PAS文件。
安装。OK!
http://www.csdn.net/cnshare/soft/11/11463.shtm