AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Probleme mit Objektkopie und eigenem MessageDialog
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Objektkopie und eigenem MessageDialog

Ein Thema von haentschman · begonnen am 19. Dez 2018 · letzter Beitrag vom 21. Dez 2018
Antwort Antwort
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Probleme mit Objektkopie und eigenem MessageDialog

  Alt 20. Dez 2018, 16:58
Entschuldigung dass ich den Pfeil auf den Dialog-Konstruktor im Screenshot dann falsch verstanden habe

Re: Objekt-Kopie: dafür gibt es doch TPersistent. Ich kann mir gerade schwer vorstellen, dass ein generischer Kopiermechanismus immer alles richtig macht. Beispiel Feld vom Typ TStringList. Kopiert das generische ObjectCopy dabei dann den Inhalt, oder nur den Zeiger?
1. Wenn das kopierte Objekt sein Objekt vom Typ TStringList selber initialisiert und finalisiert, würde ein Kopieren des Zeigers zu Problemen führen, weil dann zwei Objekte im destructor Free auf das gleiche TStringList-Feld ausführen, das zweite führt dann zwangsweise zu einem Problem.
2. Alternativ kann das ObjectCopy Inhalte kopieren, aber was ist mit einem property vom Typ TStringList (oder komplexerer Klasse), das von außen dem Objekt zugewiesen wird? Dort würde das kopierte Objekt dann nur mit einer Kopie arbeiten, wo evtl. die Arbeit am Original gewünscht ist.

In beiden Fällen kann ich mir Szenarios mit Zugriffsverletzungen auf Adresse 00000000 vorstellen. Daher halte ich ein Erben von TPersistent mit selbstdefiniertem Assign für deutlich zuverlässigere Lösung. Ist mehr Aufwand, dafür hat man wirklich in der Hand, dass die Kopie so wird, wie man will.

(evlt. noch übertriebener ausgedrückt, weil ich nicht weiß ob ich mich anschaulich ausgedrückt habe: wenn das Objekt ein Property vom Typ TCustomForm hat, das auf die MainForm verweist - soll dann beim Klonen eine zweite Kopie vom Hauptformular angelegt werden? Aber wenn nur der Zeiger kopiert wird, woher weiß das ObjectClone, dass es sich nicht um eine Form handelt, die im destructor aufgelöst wird, weil sie auch im constructor erstellt wurde?)
)

Geändert von CCRDude (20. Dez 2018 um 17:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Probleme mit Objektkopie und eigenem MessageDialog

  Alt 21. Dez 2018, 07:00
Moin...
Zitat:
Entschuldigung dass ich den Pfeil auf den Dialog-Konstruktor im Screenshot dann falsch verstanden habe
...wir haben alle unsere Leiden.

Zu deinen Fragen:
Die Objekte werden neu erzeugt. Auch die enthaltenen TStringsList werden mit Inhalt neu erzeugt. Bei der alten Funktion wurden auch komplexe, mit enthaltenen generischen Objekt Listen, Objekte kopiert. Mit der neuen Funktion habe das noch nicht ausprobiert. Vieleicht kann das mir jemand abnehmen...

Es wird immer Szenarien geben die nicht in das "Muster" passen. Für meine "Datenobjekte" ist das ausreichend.
Angehängte Grafiken
Dateityp: png copy.png (72,8 KB, 15x aufgerufen)

Geändert von haentschman (21. Dez 2018 um 07:06 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz