Hallo,
bin gerade dabei meine eigene Komponente zu entwickeln (Ableitung von z.B. TEdit). Dabei möchte ich meine Eigenschaften und Ereignisse kapseln (so wie bei DevExpress). Dazu habe ich mir eine Klasse TTestEditProperties gemacht mit einer Eigenschaft bzw. Ereigniss.
Wenn ich nun diese Klasse in mein Edit einbinde, sehe ich Objektinspektor das Ereignisse nicht, die Eigenschaft jedoch schon.
Woran könnte das liegen.
Bei den DevExpress-Komponenten konnte ich auch keinen entscheidenden Hinweis finden.
Delphi-Quellcode:
unit TestEditUnit;
interface
uses
System.SysUtils, System.Classes,
Vcl.Controls,
Vcl.StdCtrls;
type
TTestEditProperties =
class(TPersistent)
private
FTestEingenschaft:
string;
FOnTestEreigniss: TNotifyEvent;
public
published
property TestEingenschaft:
string read FTestEingenschaft
write FTestEingenschaft;
property OnTestEreigniss: TNotifyEvent
read FOnTestEreigniss
write FOnTestEreigniss;
end;
TTestEdit =
class(TEdit)
private
FSwfEditProperties: TTestEditProperties;
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
constructor Create(AOwner: TComponent);
override;
destructor Destroy;
override;
published
{ Published-Deklarationen }
property TestEditProperties: TTestEditProperties
read FSwfEditProperties
write FSwfEditProperties;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
Test', [TTestEdit]);
end;
{ TTestEdit }
constructor TTestEdit.Create(AOwner: TComponent);
begin
inherited;
FSwfEditProperties := TTestEditProperties.Create;
end;
destructor TTestEdit.Destroy;
begin
FreeAndNil(FSwfEditProperties);
inherited;
end;
end.