![]() |
variablenzuweisung record
Hallöchen!
habe folgendes Problemchen: ich habe einen Record, in dem auch andere Records vorhanden sind. z.B.:
Delphi-Quellcode:
wenn ich jetzt innerhalb von EinDaten auf die Variablen zugreife und ihnen einen neuen Wert zuweise, läuft das nicht immer alles nach Plan. Soll heißen:
type TAngDaten = record
EinDaten : TEinDaten; //Objekt Eingabe-Daten ... end; AngDaten.EinDaten.Variable stimmt nicht mit EinDaten.Variable überein! kennt jemand das Problem oder hat einen Tipp, wie ich das umgehen kann? |
Re: variablenzuweisung record
Wie weißt du den den Neuen Wert zu?
Beziehungweis wie und wo verwendest du den den Record? Wenn man z.B. auf den Record über ein Property 'ner Klasse zugreift, dann wird vorher eine Kopie angelegt und man ändert daher nur die Kopie, aber nicht das Original... |
Re: variablenzuweisung record
Zitat:
sobald ein Record etwas umfangreicher wird, lohnt es sich, den Record in eine Klasse umzuwandeln. Man fängt ganz gemütlich mit einem Record an und kommt irgendwann an den Punkt, an dem man z.B. die Daten löschen, kopieren oder speichern möchte. Mit einer Klasse (abgeleitet von TPersistent) kommt man jetzt viel besser zurecht. |
Re: variablenzuweisung record
geht ja auf zwei arten:
Delphi-Quellcode:
oder:
with AngDaten.Eindaten do
Variable := 63;
Delphi-Quellcode:
ich greife eigentlich von anderen Units auf die Records zu. also definiere z.B. EinDaten in der Unit ObjEin und greife von UnitXY darauf zu.
AngDaten.EinDaten.Variable := 63;
also verändere ich das nur bei der Kopie?! und wie kann ich dem entgehen? oder kann man das nicht verhindern? @shmia: ab wann ist das denn ratsam bzw. wozu dienen dann die records? |
Re: variablenzuweisung record
hier vermutlich nicht (war nur als Beispiel dafür, daß man halt manchmal nicht damit arbeitet, womit man denkt zu arbeiten) ^^
bei mußt du z.B. auch aufpassen, daß da, wo du Variable := 63; nurtzt nicht eine andere Variable Namens Variable den "Vorrang" hat.
Delphi-Quellcode:
with AngDaten.Eindaten do
Variable := 63; |
Re: variablenzuweisung record
falls du meinst, dass meine Variablen doppelt belegt sein können: sind alle einmal definiert und ich weise die Werte nur zu.
ich weise einmal in der Unit main Standardwerte zu, die ich dann gegebenenfalls in den anderen Units überschreibe - und eben das klappt nicht. ich weise es aber genau gleich zu! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 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