Einzelnen Beitrag anzeigen

Thomas Feichtner

Registriert seit: 30. Nov 2007
Ort: Rum
137 Beiträge
 
Delphi 10.4 Sydney
 
#1

Komponenten Properties Events

  Alt 15. Okt 2018, 14:20
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.
mfg

Thomas Feichtner
  Mit Zitat antworten Zitat