Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vererbung von Eigenschaften (https://www.delphipraxis.net/182018-vererbung-von-eigenschaften.html)

Captnemo 24. Sep 2014 17:33

Delphi-Version: 5

Vererbung von Eigenschaften
 
Ich muß nochmal ne ganz blöde Frage stellen.

Ich habe eine neue Komponente auf Basis des TCustomPanel erstellt.
TCustomPanel verfügt ja z.B. über die Eigenschaft Anchors.
Diese Eigenschaft taucht nicht im ObjektInspektor auf. Andere Eigenschaften, z.B. Cursor sind aber da.

1. Warum ist das bei einigen der Fall, und bei anderen nicht?
2. Wie kann ich eine Eigenschaft, die dort fehlt, integrieren, so, dass sie aber direkt weitergeben wird an die Komponente bzw. deren geerbtes Konstrukt. Z.b. im Fall von Anchors.

EarlyBird 24. Sep 2014 17:41

AW: Vererbung von Eigenschaften
 
Füge die Eigenschaften im published Bereich deiner Komponente hinzu
Delphi-Quellcode:
 
    ....
 published
    property Align;
    property Alignment;
    property Anchors;
    ....
    ....

Medium 24. Sep 2014 17:49

AW: Vererbung von Eigenschaften
 
Der wesentliche Unterschied zwischen VCL Komponenten und ihren TCustom* Vorfahren ist, dass die TCustom* Varianten so wenige wie möglich published properties haben, so dass ein Entwickler, der von diesen ableitet, sich genau aussuchen kann was nachher im OI erscheint, und Dinge weg lassen kann, die für seine Implementierung nicht relevant an dieser Stelle sind (oder gar schaden würden). Das ist sogar, wenn ich nicht irre, der wesentliche Grund für die Existenz der TCustom* Klassen. (Man kann nämlich properties nur nach "oben" in der Sichtbarkeit verschieben beim Ableiten, aber niemals in einer Ableitung z.B. ein published member private machen. Das ist ein Grundsatz der OOP.)

Captnemo 24. Sep 2014 18:13

AW: Vererbung von Eigenschaften
 
Zitat:

Zitat von EarlyBird (Beitrag 1273686)
Füge die Eigenschaften im published Bereich deiner Komponente hinzu
Delphi-Quellcode:
 
    ....
 published
    property Align;
    property Alignment;
    property Anchors;
    ....
    ....

Ah, mein Fehler war immer, dahinter noch den Datentyp zu setzen. Dann hat er mir mit STRG-Shift-C immer gleich alles reingesetzt, und dann ging es natürlich nicht.
Auf die Idee, nur die Eigenschaft zu publishen bin ich natürlich nicht gekommen.

Zitat:

Zitat von Medium (Beitrag 1273688)
Der wesentliche Unterschied zwischen VCL Komponenten und ihren TCustom* Vorfahren ist, dass die TCustom* Varianten so wenige wie möglich published properties haben

Danke, das leuchtet mir ein.

Sir Rufo 24. Sep 2014 20:08

AW: Vererbung von Eigenschaften
 
Nimm doch einfach STRG-LEERTASTE dann wählst du die Eigenschaften aus und schwupps sind die
Delphi-Quellcode:
published
;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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