AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

"Polymorphe Properties"?

Ein Thema von Zacherl · begonnen am 5. Apr 2016 · letzter Beitrag vom 6. Apr 2016
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

"Polymorphe Properties"?

  Alt 5. Apr 2016, 21:18
Delphi-Version: XE3
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: "Polymorphe Properties"?

  Alt 6. Apr 2016, 08:06
Die Property ist wahrscheinlich einfach vom Typ der Basisklasse all dieser Typen und die ComboBox ist über einen eigenen Propertyeditor gemacht.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#3

AW: "Polymorphe Properties"?

  Alt 6. Apr 2016, 08:48
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: "Polymorphe Properties"?

  Alt 6. Apr 2016, 11:01
Das ist eigentlich das Standard-Verhalten des OI bei abgeleiteten Klassen.
Jaa, für TComponent Properties ist das zutreffend. Aber ich möchte nicht, dass man eine auf dem Formular vorhandene Komponente auswählen kann. Es sollen nur ganz bestimmte Objekte verfügbar sein und zwar für jede Instanz der Haupt-Komponente jeweils Eigene. TextPanel biegt das zugeordnete Objekt beispielsweise auf MyBarPanel1.FTextPanelProperties um, ToolbarPanel entsprechend auf MyBarPanel1.FToolbarPanelProperties , etc.

Die Property ist wahrscheinlich einfach vom Typ der Basisklasse all dieser Typen und die ComboBox ist über einen eigenen Propertyeditor gemacht.
Das wird es wohl sein .. eine TClassProperty mit spezialisiertem PropertyEditor Muss ich mich mal einlesen in die Materie.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz