AGB  ·  Datenschutz  ·  Impressum  







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

PropertyEditor für TObjectList?

Ein Thema von sintronic86 · begonnen am 8. Feb 2017 · letzter Beitrag vom 8. Feb 2017
Antwort Antwort
sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

PropertyEditor für TObjectList?

  Alt 8. Feb 2017, 13:12
Hallo an alle Profis da draußen,

wieder einmal stehe ich vor einem (für mich) unlösbarem Problem.
Ich habe in den letzten 3 Tagen schon etliche Foren durchsucht und gefühlte 3.000.000 Code-Beispiele ausprobiert ohne nennenswerte Erfolge.

Zu meinem Problem:
Ich habe eine eigene Komponente erstellt (FMX), welche eine Art Button darstellt.
Nun möchte ich diesem eine Art Level-System beibringen, so dass ich praktisch einem Button ("A") mehrere Buttons("B", "C", "D") zuordnen kann, welche dann quasi ein Level tiefer liegen und zu "A" gehören.
Um die zusätzlichen Buttons mitführen zu können, benutze ich derzeit eine TObjectList<TMeinButton>. Dieses System funktioniert auch einwandfrei.

Delphi-Quellcode:
type
  TMeinButton = class(TControl)
    private
      FButtons: TObjectList<TMeinButton>;
    public
      property Buttons: TObjectList<TMeinButton> read FButtons
  end;

Was nicht geht: Das Bearbeiten der Buttons zur Designzeit. Ich möchte gerne im ObjectInspector die (Unter)-Buttons editieren können und diese sollen dann auch in die *.fmx-Datei gespeichert werden.
Bisher versucht habe ich einiges mit TCollection. Aber hier bin ich immer wieder gescheitert.

Gibt es nicht die Möglichkeit für die TObjectList einen eigenen PropertyEditor zu schreiben, in dem ich die entsprechenden Lade- bzw. Speicher-Funktionen selbst definieren kann? Leider habe ich zu diesem Weg keine "sinnvollen", bzw. verständlichen Beispiele bei Dr.Google finden können!
Björn
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: PropertyEditor für TObjectList?

  Alt 8. Feb 2017, 13:17
Für die Listenverwaltung innerhalb von Komponenten gibt es spezielle VCL Klassen - TCollectionItem und TCollection. Diese werden vom Designer unterstützt.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: PropertyEditor für TObjectList?

  Alt 8. Feb 2017, 14:18
Jupp, es gibt einen Standard-Property-Editor für TCollection und deine Objekte müssen dann nur von TCollectionItem erben.
PS: Es muß dort zwingend ein Setter definiert werden, da sonst nicht gespeichert wird.
Viele Andere und ich habeb diesen Setter aber meistens als "Assign" deklariert.
Delphi-Quellcode:
type
  TMeinButton = class(TControl)
    private
      FButtons: TMyList;
      procedure AssignButtons(const List: TMyList); // hier drin wird FButtons geleert (Clear) und dann die Items der Liste umkopiert
    public
      property Buttons: TMyList read FButtons write AssignButtons;
  end;

Ansonsten wirst du dir selber einen eigenen Property-Editor (OTA) bauen müssen, wenn du nicht TCollection verwenden magst.
$2B or not $2B

Geändert von himitsu ( 8. Feb 2017 um 14:23 Uhr)
  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 18:08 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