Autor Beitrag
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 11.08.16 07:32 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Das Problem besteht nicht darin, nicht zu wissen, wann ich ein struct und wann eine class verwenden soll, vielmehr fällt es mir schwer, Dinge in .NET umzusetzen, die in Objective Pascal leichter/anders von der Hand gehen. Dort wäre ich auf den TypeConverter nicht angewiesen und könnte sehr wohl auf die Art eine Eigenschaft bereitstellen
Eigentlich ist der Unterschied zwischen Delphi und .NET an der Stelle relativ klein. In beiden Fällen wird bei Verwendung in einer property eine Kopie des structs beziehungsweise Records zurückgegeben, deren Eigenschaften man nicht verändern kann.

Und auch für den Objektinspektor brauchst du dann eine entsprechende Hilfsklasse um Dsten des Records anzuzeigen oder zu modifizieren.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 11.08.16 12:51 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 12.08.16 21:29 
Im generischen TypeConverter fehlt irgendwie der Weg zurück? Man muss ja nicht nur seinen Typ in einen string umwandeln können sondern auch zurück also string nach Typ.
Ich hab mal dein Beispiel vervollständigt mit den Dingen die ich für fehlend halte.

Ich muss aber sagen das ich die Idee merkwürdig finde den Designtime Code im eigentlichen Typen unterzubringen.
Der muss im späteren Code nicht mit ausgeliefert werden sollte daher woanders hin (andere Assembly), der TypeConverter selber wäre da der übliche verdächtige. Einfach einen BasisConverter erstellen und dann davon Ableitungen erzeugen für die konkreten Klassen. Ist nicht mehr Code als so und der Design Code ist sauber vom eigentlichen Code getrennt.

Um eine Instanz des Typen zu erzeugen ist so auch ein doofer Hack nötig. Man kann natürlich ein Methode zum erzeugen dem Interface hinzufügen aber das gehört ja zwingend zu einer Instanz der Klasse um also über ein Interface einen passenden Typen erzeugen zu können muss man erstmal eine Instanz erzeugen (über den Standardkonstruktor) um eine passende Instanz erzeugen zu können :cry:
Einloggen, um Attachments anzusehen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 13.08.16 17:10 
- Nachträglich durch die Entwickler-Ecke gelöscht -