AGB  ·  Datenschutz  ·  Impressum  







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

auf die Daten der Basisklasse zugreifen

Ein Thema von bernhard_LA · begonnen am 21. Aug 2017 · letzter Beitrag vom 21. Aug 2017
Antwort Antwort
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#1

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 10:26
Zu COBOL Zeiten gab es ein MOVE CORRESPONDING.

Solltest du mit einer Kanone auf Spatzen schießen wollen, könntest du Properties machen und via RTTI zusammengehörige Felder zuweisen.

Solltest du ganz hässlichen Code produzieren wollen, könntest du überlegen, dass i,j und pt alle am selben Offset im Speicher stehen, du könntest also einfach einen Speicherbereich via Offset und Länge kopieren.

Im Übrigen sind alle anderen erwähnten Lösungen natürlich viel besser!

Uups. Zwischenzeitlich ist Variante 1 tatsächlich vorgeschlagen worden. Wow.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#2

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 10:32
Joar, im normalen Programmieralltag würde ich auf solche "komplexen" (langsamen) Kopierfunktionen auch lieber verzichten wollen.
Nach und von JSON serialisieren stünde da auch noch zur Auswahl.



PS: TObject ist ein Zeiger auf einen Record.
System.CopyRecord oder System.CopyArray mit Length=1
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.079 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 10:33
Uups. Zwischenzeitlich ist Variante 1 tatsächlich vorgeschlagen worden. Wow.
Bei vielen verschiedenen Klassen und den Gebrauch derartiger Zuweisungen kann man die Kanone ruhig nehmen.
Dann fällt auch schnell auf, wenn eine Prop in Klasse A deklariert wurde und nicht in Klasse B.
Sowas wird beim Assign natürlich schnell vergessen.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#4

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 11:23
Bei vielen verschiedenen Klassen und den Gebrauch derartiger Zuweisungen kann man die Kanone ruhig nehmen.
Naja, bei mir läuten bei sowas eher die Alarmglocken + ein Schild mit "Designfehler" poppt auf. So ein blindes im Nebel herumstochern sollte wirklich die Ausnahme sein. Aber man kann natürlich auch ein Maßband zum Fenster rauswerfen + aus der Lautstärke des Aufpralls auf die Fallhöhe rückschließen. Kreativ, funktioniert, nicht jeder wär draufgekommen, aber mit dem Maßband messen wär auch gegangen.

Dann fällt auch schnell auf, wenn eine Prop in Klasse A deklariert wurde und nicht in Klasse B.
Sowas wird beim Assign natürlich schnell vergessen.
Nope. Das ist eher genau umgekehrt. In deinem Code fällt das gar nicht auf. Beim Assign hättest du schon zur Compilierzeit einen Fehler.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.079 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 12:15
Nope. Das ist eher genau umgekehrt. In deinem Code fällt das gar nicht auf. Beim Assign hättest du schon zur Compilierzeit einen Fehler.
Was glaubst du, was passiert, wenn SetPropValue die (neu angelegte) Property von Klasse A in Klasse B nicht findet?

Beim Assign musst du das in der entsprechenden Methode explizit hinschreiben.
Das wird vergessen, sobald mehr als eine Person an der Klassenstruktur herumdoktert.
Nix mit Fehler zur compile time.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#6

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 12:42
Nix mit Fehler zur compile time.
Wenn ein Property mal entfernt wird.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.079 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 12:48
Nix mit Fehler zur compile time.
Wenn ein Property mal entfernt wird.
Ja, aber auch nur dann!
In [HoheProzentzahlEinsetzen] aller Fälle wird hinzugefügt, anstatt was entfernt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#8

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 12:55
Du könntest einen Unittest anschließen, aber natürlich wurde das neue Property dort dann auch vergessen zu prüfen.
Ein Therapeut entspricht 1024 Gigapeut.
  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 10:56 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