![]() |
AW: Klasse mit Properties als Property
In der TBackgroundAlignment befindet sich nur:
Delphi-Quellcode:
Das kann er mir ja auch anzeigen.
type
TBackgroundAlignment = (baStandard, baLeftToRight, baTopToBottom); Also ich habe jetzt verschiedene Sachen probiert: Das mit dem PropertyEditor bekomme ich irgendwie nicht hin, ausser das halt
Delphi-Quellcode:
@sx2008: TBackGround.Assign hab ich eingebaut, keine Veränderung.
TBackGroundProperty = class(TPropertyEditor)
//Was soll ich hier machen end; @Uwe: Hab ich auch ausprobiert, hab
Delphi-Quellcode:
erstellt und auch installiert. Dann habe ich mein anderes Projekt aufgemacht wo ich mir das anschaue und da kommt jetzt Adressfehler. Also mach ich was falsch, aber was!?
{...}
type TBackGround = class(TComponent) {...} end; type TMyPanel = class(TPanel) private FBackGround: TBackGround; procedure SetBackGround(Value: TBackGround); published property BackGround: TBackGround read FBackGround write SetBackGround; public constructor Create(AOwner: TComponent); override; end; {...} constructor Create(AOwner: TComponent); begin FBackGround.SetSubComponent(true); inherited; end; Gruß Ninow |
AW: Klasse mit Properties als Property
Zitat:
constructor TMyPanel.Create(..) Eigne dir die Grundlagen an, falls du das nicht wusstest! Weiters müsstet du im Konstruktor Speicher für das Feld FBackground allozieren... |
AW: Klasse mit Properties als Property
Ah,
wär ein Fehler den der Compiler melden würd ;) sry habs vercheckt hinzuschreiben. Natürlich muss die Klasse da stehen. Trotz alldem funktioniert es nicht. Ach ja, >.< hab ich mal wieder im Eifer des Gefechts vergessen... |
AW: Klasse mit Properties als Property
Zitat:
Delphi-Quellcode:
constructor TMyPanel.Create(AOwner: TComponent);
begin inherited Create(AOwner); FBackGround := TBackGround.Create(Self); FBackGround.Name := 'Background'; FBackGround.SetSubComponent(true); end; |
AW: Klasse mit Properties als Property
Die Klasse TBackGround muss ausserdem noch registriert werden:
Delphi-Quellcode:
Ich glaube jetzt ham wir alle Vorrausetzungen:
initialization
RegisterClass(TBackGround); end; * vom TPersistent ableiten * Properties published deklarieren * Assign-Methode überschreiben * Klasse registrieren Von TCompoent abzuleiten ist nicht norwendig. Wie man sieht ist z.B. die Klasse TFont nicht von TComponent abgeleitet und man kann die Eigenschaften trotzdem im Objektinspektor editieren. |
AW: Klasse mit Properties als Property
Ah, dass hab ich garnicht gewusst, nja mein Projekt "eigene Komponenten" steckt noch in den Kinderschuhen. So einiges weiß ich auch noch nicht, muss ich noch ranglotzen! Danke euch!
|
AW: Klasse mit Properties als Property
Zitat:
Bisher war ich immer davon ausgegangen dass bei
Delphi-Quellcode:
die Sichtbarkeit von "Geheim" immer published ist, unabhängig von der Vorfahrklasse.
TMeineKlasse = class(TIrgendwas)
Geheim: string; end; Der Unterschied zeigt sich wenn man $M+ hinzufügt. Wenn TObject -> public gälte, würde $M+ der Klasse keine ![]() Mike |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:38 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-2025 by Thomas Breitkreuz