Delphi 中﹐我写的控件库单件﹐ 如何注册啊,,,,,使其能显示在paleete的某个面上……
以下为控件类代码﹐我里面已有注册函数﹐请知道的详述一下步骤………..相关问题…..
http://community.csdn.net/Expert/TopicView.asp?id=4319618
http://community.csdn.net/Expert/TopicView.asp?id=4316129unit myconponent;interfaceuses SysUtils, WinTypes, Messages, Classes, Graphics, Controls,
Forms, Grids, Calendar,dbctrls,db;type
TDBCalendar=class(TCalendar)
private
fReadonly :boolean ;
fupdating :boolean ;
FDataLink :TFieldDataLink ;
function GetDataField: string; { 返回数据库字段的名字 }
function GetDataSource: TDataSource; { 返回资料源(Data source)的引用 }
procedure SetDataField(const Value: string); { 给数据库字段名赋值 }
procedure SetDataSource(Value: TDataSource); { 给数据源赋值 }
procedure Datachange(Sender: TObject);
protected
function selectcell(ACol,ARow:longint):boolean ;overload ;
public
constructor Create (Aower:TComponent) ; override ;
destructor Destroy() ;override ;
procedure UpdateCalendar ;
published
property readonly :boolean read FReadonly write Freadonly default true ;
property DataField: string read GetDataField write SetDataField;
property DataSource: TDataSource read GetDataSource write SetDataSource;end ;
procedure Register ;implementationprocedure Register;
begin
RegisterComponents('Samples',[TDBCalendar]);
end;constructor TDBCalendar.Create(Aower:TComponent);
begin
inherited create(Aower) ;
fReadonly:=true ;
FDataLink :=TfieldDataLink.Create ;
Fdatalink.OnDataChange:= Datachange ;
end;destructor TDBCalendar.Destroy ;
begin
fDATAlink.Free ;
fdatalink.OnDataChange :=nil ;
inherited destroy ;
end ;function TDBCalendar.SelectCell(ACol,Arow: Longint): Boolean;
begin
if ( not fupdating) and FReadOnly then
Result := False
else
Result := inherited SelectCell(Acol,ARow);
end;procedure TDBCalendar.UpdateCalendar;
begin
FUpdating := True;
try
inherited UpdateCalendar;
finally
FUpdating := False;
end ;
end;function TDBCalendar.GetDataField: string;
begin
Result := FDataLink.FieldName;
end;function TDBCalendar.GetDataSource: TDataSource;
begin
Result := FDataLink.DataSource;
end;procedure TDBCalendar.SetDataField(const Value: string);
begin
FDataLink.FieldName := Value;
end ;procedure TDBCalendar.SetDataSource(Value: TDataSource);
begin
FDataLink.DataSource := Value;
end;procedure tdbcalendar.Datachange(sender:tobject);
begin
if FDataLink.Field =nil then
CalendarDate := 0
else
CalendarDate := FDataLink.Field.AsDateTime ;
end ;end.
以下为控件类代码﹐我里面已有注册函数﹐请知道的详述一下步骤………..相关问题…..
http://community.csdn.net/Expert/TopicView.asp?id=4319618
http://community.csdn.net/Expert/TopicView.asp?id=4316129unit myconponent;interfaceuses SysUtils, WinTypes, Messages, Classes, Graphics, Controls,
Forms, Grids, Calendar,dbctrls,db;type
TDBCalendar=class(TCalendar)
private
fReadonly :boolean ;
fupdating :boolean ;
FDataLink :TFieldDataLink ;
function GetDataField: string; { 返回数据库字段的名字 }
function GetDataSource: TDataSource; { 返回资料源(Data source)的引用 }
procedure SetDataField(const Value: string); { 给数据库字段名赋值 }
procedure SetDataSource(Value: TDataSource); { 给数据源赋值 }
procedure Datachange(Sender: TObject);
protected
function selectcell(ACol,ARow:longint):boolean ;overload ;
public
constructor Create (Aower:TComponent) ; override ;
destructor Destroy() ;override ;
procedure UpdateCalendar ;
published
property readonly :boolean read FReadonly write Freadonly default true ;
property DataField: string read GetDataField write SetDataField;
property DataSource: TDataSource read GetDataSource write SetDataSource;end ;
procedure Register ;implementationprocedure Register;
begin
RegisterComponents('Samples',[TDBCalendar]);
end;constructor TDBCalendar.Create(Aower:TComponent);
begin
inherited create(Aower) ;
fReadonly:=true ;
FDataLink :=TfieldDataLink.Create ;
Fdatalink.OnDataChange:= Datachange ;
end;destructor TDBCalendar.Destroy ;
begin
fDATAlink.Free ;
fdatalink.OnDataChange :=nil ;
inherited destroy ;
end ;function TDBCalendar.SelectCell(ACol,Arow: Longint): Boolean;
begin
if ( not fupdating) and FReadOnly then
Result := False
else
Result := inherited SelectCell(Acol,ARow);
end;procedure TDBCalendar.UpdateCalendar;
begin
FUpdating := True;
try
inherited UpdateCalendar;
finally
FUpdating := False;
end ;
end;function TDBCalendar.GetDataField: string;
begin
Result := FDataLink.FieldName;
end;function TDBCalendar.GetDataSource: TDataSource;
begin
Result := FDataLink.DataSource;
end;procedure TDBCalendar.SetDataField(const Value: string);
begin
FDataLink.FieldName := Value;
end ;procedure TDBCalendar.SetDataSource(Value: TDataSource);
begin
FDataLink.DataSource := Value;
end;procedure tdbcalendar.Datachange(sender:tobject);
begin
if FDataLink.Field =nil then
CalendarDate := 0
else
CalendarDate := FDataLink.Field.AsDateTime ;
end ;end.
begin
RegisterComponents('standard', [YourClass]);
end;
会写控件不会注册,别的语言(VC++,C++,C,C#,VB,Java......)转过来的吧,呵呵