AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Variablenzuweisung, wann kopie, wann verknüpfung
Thema durchsuchen
Ansicht
Themen-Optionen

Variablenzuweisung, wann kopie, wann verknüpfung

Ein Thema von empanyc · begonnen am 15. Feb 2004 · letzter Beitrag vom 15. Feb 2004
Antwort Antwort
Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#1

Re: Variablenzuweisung, wann kopie, wann verknüpfung

  Alt 15. Feb 2004, 15:53
Hi,

handelt es sich bei der Variablen um einen Record oder auch ein klassisches, statisches Array
( Array[0..x] of TIgendwas) wird bei der Zuweisung kopiert.
Bei dynamischen Array und Objekten die mit class deklariert sind ist das nicht so.
Dein Objekt wie Button1 zum Beispiel ist in wirklichkeit ein Pointer auf eine Datenstruktur auf dem Heap,
die Anweisung Button2 := button1 ; dupliziert nur die Adresse nicht das Objekt.
Auch dynamische Arrays werden auf dem Heap von Delphi verwaltet und sind in Wirklichkeit nur Pointer auf die Datenstruktur. ( SizeOf(TDaten) liefert zum Beispiel unabhängig von der Grösse des arrays immer 4)

 daten := daten2; dupliziert auch hier nur den Pointer auf ein und denselben Inhalt, änderst du die Kopie änderst du auch das Orginal, was leider anders ist als bei normalen Arrays.
Willst Du Delphi zwingen eine Kopie anzulegen, setze einfach die Länge der Kopie oder des Orginals nach der Zuweisung neu ( Eine Änderung der Länge ist nicht erforderlich).

SetLength(daten2,Length(daten2)); Grüsse Bernd
Bernd Ua
  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 23:54 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