AGB  ·  Datenschutz  ·  Impressum  







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

variablenzuweisung record

Ein Thema von ksh · begonnen am 27. Jul 2006 · letzter Beitrag vom 27. Jul 2006
Antwort Antwort
ksh
(Gast)

n/a Beiträge
 
#1

variablenzuweisung record

  Alt 27. Jul 2006, 12:35
Hallöchen!

habe folgendes Problemchen:

ich habe einen Record, in dem auch andere Records vorhanden sind. z.B.:
Delphi-Quellcode:
type TAngDaten = record
       EinDaten : TEinDaten; //Objekt Eingabe-Daten
       ...
   end;
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:

AngDaten.EinDaten.Variable stimmt nicht mit EinDaten.Variable überein!

kennt jemand das Problem oder hat einen Tipp, wie ich das umgehen kann?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: variablenzuweisung record

  Alt 27. Jul 2006, 12:38
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...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: variablenzuweisung record

  Alt 27. Jul 2006, 12:56
Zitat von ksh:
ich habe einen Record, in dem auch andere Records vorhanden sind. z.B.:
Ein Tipp aus langjähriger Erfahrung:
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.
Andreas
  Mit Zitat antworten Zitat
ksh
(Gast)

n/a Beiträge
 
#4

Re: variablenzuweisung record

  Alt 27. Jul 2006, 12:59
geht ja auf zwei arten:
Delphi-Quellcode:
with AngDaten.Eindaten do
    Variable := 63;
oder:
AngDaten.EinDaten.Variable := 63; 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.
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: variablenzuweisung record

  Alt 27. Jul 2006, 13:15
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ksh
(Gast)

n/a Beiträge
 
#6

Re: variablenzuweisung record

  Alt 27. Jul 2006, 13:21
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!
  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 09:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz