Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Erweitern einer vorahandenen Property in einer VCL Komponente

  Alt 24. Jul 2017, 17:25
Erstmal nachschauen welche Klasse die einzelnen Marker haben.
Diese Klasse ableiten und um dein Property erweitern.

Dann die Stelle suchen, wo die Instanzen jener Marker-Klasse erstellt werden und ob/wie man da diese Klasse durch deine Ableitung ersetzt.

Und das bis hoch zur TWebOsMaps, falls es mehrere Ebenen gibt, wie z.B.:
* Marker-Klasse ableiten
* Marker-Liste ableiten, zum Reinhängen der Marker-Klasse
* TWebOsMaps ableiten, zum Ersetzen der Marker-Listen-Klasse.

Am Besten macht es sich, wenn TMS dafür in den übergeordneten Klassen die nötigen Funktionen als virtual deklariert hat und das möglichst fein diffenenziert, z.B. ala CreateMarker oder GetMarkerClass, bzw. wenn die Liste ihre Item-Klasse im Contructor bekommt, ala Delphi-Referenz durchsuchenTCollection.Create.
Die aktuelle Implementierung lässt diesen Weg leider nicht zu. Man muss die Collection von TMarkers ableiten, hat aber dann keinen Einfluss mehr auf die ItemClass. Das Design ist in diesem Punkt alles andere als flexibel.



"Umständlicher" :
Du führst eine Liste/Array mit den GUIDs und schreibst bei den Klassen in .Tag den jeweiligen Index.

Oder andersrum, über die Instanzen verlinkt. -> TDictionary<TMarker, TGUID>
Ist in diesem Fall wohl der einzig gangbare Weg.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat