AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TStrings und Assign

Ein Thema von Neutral General · begonnen am 17. Jun 2014 · letzter Beitrag vom 17. Jun 2014
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.771 Beiträge
 
Delphi 12 Athens
 
#1

AW: TStrings und Assign

  Alt 17. Jun 2014, 13:19
Ich vermute mal, es ist by-design. Wenn eine von TPersistent abgeleitete Klasse keine eigene Implementierung von Assign hat, dann und nur dann wird die Source-Instanz über AssignTo mit der Zuweisung beauftragt. Da TStrings und seine Abkömmlingen aber ein eigenes Assign implementieren, ist AssignTo hier aus dem Rennen. Würde TStrings im Assign nach der Zuweisung noch inherited aufrufen, käme ja zusätzlich noch das AssignTo der Source-Instanz zum tragen und nicht alternativ.

Wenn du nun einen eigenen Abkömmling von TStrings schreibst, dann wirkt sich deine Implementierung von AssignTo allenfalls für Zielklassen aus, die nicht von TStrings abgeleitet sind und kein eigenes Assign bereitstellen, was deine Klasse berücksichtigt. Willst du eine spezielle Behandlung bei einer Zuweisung deiner Klasse nach TStringList, die von dem Standardverhalten abweicht, dann ist der bestehende Mechanismus von Assign einfach nicht der richtige Weg. Da wäre dann eine separate Methode á la AssignToStringList in deiner Klasse und ein Aufruf dieser an den entsprechenden Stellen wohl der bessere Weg. Vielleicht kannst du auch die Inheritance von TStrings aufbrechen, dann käme dein AssignTo wieder zum tragen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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: TStrings und Assign

  Alt 17. Jun 2014, 13:35
Ja gut, dass nicht ein implementiertes Assign UND das AssignTo aufgerufen werden (sollen) ist klar.
Ich bin nur davon ausgegangen dass das Überschreiben von AssignTo das Standardverfahren wäre.

Ein AssignToStringlist bringt mir in meine Fall leider nichts weil mein Problem das Assign einer Stringliste im VCL-Code ist, den ich leider nicht grad auf AssignToStringlist umbauen kann

Naja dann muss ich mir irgendwie was schlaues überlegen
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
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:19 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