![]() |
Komponenten Properties Events
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. |
AW: Komponenten Properties Events
Zitat:
|
AW: Komponenten Properties Events
Nein,
leider nicht. (Wollte ein Bild anhängen, jedoch sagte er jedes mal, dass er diese Grafikformat (bmp, png, jpg) nicht unterstützt.) |
AW: Komponenten Properties Events
Zitat:
Kannst du mal ein simples Projekt für das Designtime-Package anhängen, bei dem das Problem auftritt? |
AW: Komponenten Properties Events
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
|
AW: Komponenten Properties Events
Offenbar funktionieren bei nested Properties die Events nicht von Haus aus. DevExpress registriert dafür extra ein eigenes Property PropertiesEvents und einen dazu passenden Property Editor TcxEditPropertiesEventEditor, der das implementiert. Sowas müsstest du dann auch machen.
Ehrlich gesagt, ich würde das auf die althergebrachte Methode erledigen und die separate Eigenschaftsklasse weglassen. Es ist halt immer etwas aufwändiger, wenn man gegen das originale Design-Konzept programmiert. Persönlich gefällt mir diese Kapselung auch nicht wirklich, aber das ist sicher Geschmackssache. Vielleicht gibt es in deinem Fall ja auch gute Gründe für dieses Design. |
AW: Komponenten Properties Events
Sollte es nich reichen die TTestEditProperties auch zu registrieren?
Delphi-Quellcode:
z.B: RegisterNoIcon([TTestEditProperties]);
Bin leider nicht an einem Delphi Rechner kann es nicht testen |
AW: Komponenten Properties Events
Zitat:
|
AW: Komponenten Properties Events
Zitat:
So habe ich es nun auch gemacht. Und wie es aussieht funktioniert es. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz