AGB  ·  Datenschutz  ·  Impressum  







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

Objekt kopieren... gibt es was Neues ?

Ein Thema von haentschman · begonnen am 21. Feb 2012 · letzter Beitrag vom 21. Feb 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.303 Beiträge
 
Delphi 12 Athens
 
#1

Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 08:02
Hallo alle...

Ich wollte 2 getrennte Objekte (Original / geändert) um evt. den Ursprungszustand wieder herstellen zu können und das geänderte für die Validitätsprüfung.
Dabei bin ich der Hilfe von TPersistent ausgeliefert worden...
Zitat:
Mit Assign kopieren Sie die Eigenschaften und andere Attribute eines Objekts aus einem anderen.
Inzwischen habe ich viel gelesen und herausbekommen daß die Implementierung von Assign selbst erfolgen muß.

Da die Beiträge alle samt aus den Jahren 2002 - 2008 etwa stammen drängte sich die Frage auf, ob mit den Neuen Delphi´s evt. neue Techniken eingeführt wurden um eine Objektkopie zu realisieren...

Danke für Info´s

Geändert von haentschman (21. Feb 2012 um 08:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 08:11
Naja mit Hilfe der RTTI lässt sich eigentlich immer was machen. Ab Delphi 2010 (?) sollte man auch die Public-Properties auslesen können glaube ich. (Du musst sie nicht mehr extra published machen).
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.303 Beiträge
 
Delphi 12 Athens
 
#3

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 08:13
Danke für die schnelle Antwort...

Das mit der RTTI habe ich auch gelesen. Nur reichen mir die Public Properties nicht. Ich bräuchte eine vollständige Kopie.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.369 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 08:16
Du könntest eventuell die dbExpress-Routinen benutzen, die auch DataSnap zum Marshalling/Unmarshalling verwendet. Ich fürchte aber, dass dir in der Professional die entsprechenden Units fehlen, da DataSnap erst in der Enterprise dabei ist.

Du kannst ja mal schauen, ob du die Units DBXJSON und DBXJSONReflect hast, dann sehen wir ggf. weiter.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.303 Beiträge
 
Delphi 12 Athens
 
#5

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 08:27
...die wären schon mal da.
Angehängte Grafiken
Dateityp: png JSON.png (26,0 KB, 60x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.369 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 08:40
Dann findest du im SVN hier eine passende Demo, das Repository kannst du einfach mit Delphi öffnen:
https://radstudiodemos.svn.sourcefor...rshalUnmarshal (Root wäre https://radstudiodemos.svn.sourcefor...s/RadStudio_XE)
(Außerdem hast du die Demo dann vermutlich auch schon lokal in den Samples.)

Für dich interessant sind die Knöpfe zum Marshalling und Unmarshalling.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 09:09
Naja mit Hilfe der RTTI lässt sich eigentlich immer was machen. Ab Delphi 2010 (?) sollte man auch die Public-Properties auslesen können glaube ich. (Du musst sie nicht mehr extra published machen).
Auch ein Zugriff auf Variablen mit "private" Sichtbarkeit ist mit Extended RTTI (ab Delphi 2010) möglich
Michael Justin
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 09:13
Diese Lösung ist sehr kompakt, erfordert nur Delphi 2010 und keine weiteren Bibliotheken:

http://stackoverflow.com/a/9197330/80901

Sie verwendet die neuen JSON Klassen in Delphi um das Objekt erst zu serialisieren und dann wieder in ein neues zu deserialisieren.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.369 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 09:21
Genau die Lösung wird ja in der Demo oben verwendet...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Objekt kopieren... gibt es was Neues ?

  Alt 21. Feb 2012, 10:43
unter XE bekomme ich

"Exception der Klasse EInsufficientRtti mit der Meldung 'Unzureichende RTTI zur Unterstützung dieser Operation verfügbar'"

bei :
Delphi-Quellcode:
  With Button2.Clone do
    begin
      left := left + 100;
      top := top + 100;
    end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:36 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