Hallo,
ich möchte mit Delphi 7 einen automatischen XmlSerializer schreiben .
Dazu müssen natürlich alle Objekte einer komplexen Klassenheriarchie beim Deserialisieren erzeugt werden.
Aber wie geht das wenn man nur eine Variable hat und den Typ nicht kennt?
bzw der Typ kann zwar mit TypInfo.pas abgefragt werden, aber dann hat man ja nur nen String
ist es möglich mit Delphi eine Instanz eines Objektes zu erzeugen ohne den Typ zu kennen?
vielleicht braucht man einen Zeiger auf den constrtuctor,
*uffz*
wie geht das?
kann mir jemand die "Class of" - Syntax erklären?
wozu gibt es diese Syntax:
Delphi-Quelltext
1: 2: 3:
| dings = class end; dingsClass = class of dings; |
Vielen Dank im voraus
Dings
Moderiert von
Kha: Delphi-Tags hinzugefügt
---
Moderiert von
Narses: Beiträge zusammengefasst---
OK, ein Objekt von einem bestimmten Typ erzeugen wenn man nur den Klassennamen in einem String hat geht ja eigentlich ganz einfach so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| uses Classes; function Creator(classname: String): TObject; begin result := GetClass(classname).Create; end;
var tst: TObject; begin tst := Creator('TMyDings'); MsgBox(tst.ClassName); end; |
Voraussetzung ist dass vorher die Klasse registriert wurde:
RegisterClass(TMyDings)
Gruss
Dings
Moderiert von
Kha: Delphi-Tags hinzugefügt
---
Moderiert von
Narses: Beiträge zusammengefasst---
Achja bevor ichs noch vergess:
die Klasse die de-/serialisiert werden soll muss natürlich auch TPersistent oder auch TCollectionItem sein.
Delphi-Quelltext
1: 2: 3: 4: 5:
| TMyDings = class(TPersistent) end; TMyDings = class(TCollectionItem) end; |
@Kha danke fürs taggen
