![]() |
Delphi-Version: XE3
"Polymorphe Properties"?
Hallo zusammen,
ich erinnere mich bei einigen Fremdkomponenten schonmal so etwas wie polymorphe Properties gesehen zu haben. Da ich nicht genau weiß, wie der Fachbegriff dafür ist, versuche ich es mal zu beschreiben: Die einzelnen Segmente einer StatusBar hatten eine Eigenschaft - nennen wir sie mal PanelType. Der Objektinspektor zeigte mir dazu in einem Dropdown Menü verschiedene Auswahlmöglichkeiten, wie z.b. TextPanel, ToolbarPanel, und so weiter an. Soweit nichts Besonderes (könnte man ja einfach über ein Enum realisieren), allerdings sah es im OI so aus, als steckte hinter diesen Möglichkeiten jeweils ein (polymorphes) Objekt. Sprich: Ich konnte die Eigenschaft "aufklappen" und je nach Wahl erhielt ich entsprechend sinnvolle Sub-Properties. Das TextPanel erlaubt mir eine Caption zu setzen, beim ToolbarPanel kann ich ein Toolbar Objekt auswählen, was angedockt werden soll, etc. Weiß jemand, wie man diese speziellen Properties nennt und wie sowas implementiert wird? Viele Grüße Zacherl |
AW: "Polymorphe Properties"?
Die Property ist wahrscheinlich einfach vom Typ der Basisklasse all dieser Typen und die ComboBox ist über einen eigenen Propertyeditor gemacht.
|
AW: "Polymorphe Properties"?
Das ist eigentlich das Standard-Verhalten des OI bei abgeleiteten Klassen. Ich kann das hier ganz leicht mit einem VCL-Form, einem TButton, einer TImageList und einer TPngImageList reproduzieren. Das Images-Property des TButton ist vom Typ TCustomImageList. Je nachdem, welche der ImageLists ich diesem Proeprty zuweise, werden die jeweiligen (auch unterschiedlichen) Eigenschaften der ImageList-Klasse im OI angezeigt.
Die OI-ComboBox zeigt auch alle Instanzen an, die von der Basisklasse (hier TCustomImageList) abgeleitet sind. Ein ähnliches Beispiel lässt sich auch einfach mit einer TDataSource und unterschiedlichen TDataSet-Instanzen aufbauen. |
AW: "Polymorphe Properties"?
Zitat:
Delphi-Quellcode:
um, ToolbarPanel entsprechend auf
MyBarPanel1.FTextPanelProperties
Delphi-Quellcode:
, etc.
MyBarPanel1.FToolbarPanelProperties
Zitat:
Delphi-Quellcode:
mit spezialisiertem PropertyEditor :thumb: Muss ich mich mal einlesen in die Materie.
TClassProperty
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 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