Thema: Delphi Objekt duplizieren?

Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Objekt duplizieren?

  Alt 6. Mär 2008, 11:58
Du hast so ziemlich den Nagel auf den Kopf getroffen.
Es geht halt nur wenn sogenannte RunTime-Type-Informations vorhanden sind (kurz RTTI). Die sind in Teilen vorhanden, soweit sie halt gebraucht werden. Zum Beispiel muss in einem Record oder in einer Klasse stehen, wo ein String ist, damit er beim Auflösen der Struktur auch gelöscht werden kann. Und das steht immer da. Zusätzlich kann man den Compiler dazu bewegen in Klassen Informationen über alle published-Deklarationen zu hinterlegen (bis hin zu den Parametern von Methoden). Genau das ist auch der einzige Unterschied zwischen TObject und TPersistent. (Wobei man das mit einem Compilerschalter {$M} auch für eine von TObject abgleitete Klasse machen kann) Damit kann man dann eine komplette Kopierroutine schreiben (wie in dem Link).

Ich sehe grade, dass die verlinkte Methode das kopieren von Klassen derzeit komplett verweigert (also nicht diese Methode aber die Funktion aus der unit TypInfo). Ist ja auch klar, denn nach welchem Schema soll die Klasse dann kopiert werden?

Man kann sich unter zu Hilfenahme dieser Informationen eine Basisklasse schreiben, welche den Kopiervorgang implementiert. Und dann kann man alle Klassen, welche von dieser Klasse abgeleitet sind kopieren. Die VCL hat ja im Prinip für sich auch ein paar Routinen dazu. Aber etwas fertiges, allgemeingültiges kann man unter Delphi nicht schreiben.

Zu anderen Sprachen, kannst du mal hier lesen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat