AGB  ·  Datenschutz  ·  Impressum  







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

Variable wird gelöscht

Ein Thema von tomkupitz · begonnen am 29. Apr 2017 · letzter Beitrag vom 30. Apr 2017
Antwort Antwort
tomkupitz

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#1

AW: Variable wird gelöscht

  Alt 30. Apr 2017, 13:53
Mache ich eine völlig neue Variable b auf, kopiere zu Progstart b:=a;, dann ist b am Ende auch leer.

Auch interessant:

uses Unit3, Unitx; //a und b leer am Ende

uses Unitx, Unit3; //a und b behalten Pfade

Compiler Bug ???
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.052 Beiträge
 
Delphi 12 Athens
 
#2

AW: Variable wird gelöscht

  Alt 30. Apr 2017, 14:47
Compiler Bug ???
Möglich, aber sehr sehr unwahrscheinlich. Zumal die Verwendung globaler Variablen nicht gerade ein Zeichen sauberen Quelltextes ist und ich somit erst recht auf deinen Quelltext als Ursache tippe.

Hast du denn z.B. mal den Datenhaltepunkt versucht?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
tomkupitz

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#3

AW: Variable wird gelöscht

  Alt 30. Apr 2017, 15:03
Zitat:
Hast du denn z.B. mal den Datenhaltepunkt versucht?
Habe ich. Variable ist nach allen Form Destroy's noch ok. Erst im finalization ist a leer.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
778 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Variable wird gelöscht

  Alt 30. Apr 2017, 16:15
Falls deine Unit eine Form enthält, dann könnest du das Speichern von Dingen doch auch anderswo unterbringen?

( initialization und finalization würde ich nicht mit solchen Dingen "belasten". )

Falls nicht du nicht irgendwo in einer der units den Variablen A und B leer zuweist, dann tönt das interessant... Breakpoints gesetzt und gecheckt, ob du A und B veränderst?
Michael Gasser
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
778 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Variable wird gelöscht

  Alt 30. Apr 2017, 17:16
Hab's rasch gescheckt in XE4, XE6 und Tokyo. Das Verhalten ist immer gleich.

Eine globale Variable wird direkt nach dem finalization Teil der unit. in welcher sie definiert ist geleert.

Wenn du also eine unit1 hast mit einer var a und zum Projekt eine unit2 hinzufügst mit einer var b und das Programm laufen lässt, dann wird unit2 initialisiert, dann unit1 - beim Beenden unit1 finalisiert und dann unit2.
Du kannst bereits im Initialisierungsteil von unit2 a einen Wert zuweisen, aber:

Wenn du im finalization Teil von unit2 auf a zugreifst, dann ist a leer.


[Speichere doch deine Dinge im DestroyForm des Hauptfensters oder sonst irgendwo... , wo noch alle Werte vorhanden sind.]
Michael Gasser
  Mit Zitat antworten Zitat
tomkupitz

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#6

AW: Variable wird gelöscht

  Alt 30. Apr 2017, 17:26
Zitat:
Eine globale Variable wird direkt nach dem finalization Teil der unit. in welcher sie definiert ist geleert.
Danke Michael II. Das ist die Lösung!

Durch Änderung der Reihenfolge im uses Abschnitt, wurde auch die Aufrufreihenfolge der finalization Abschnitte geändert.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.457 Beiträge
 
Delphi 12 Athens
 
#7

AW: Variable wird gelöscht

  Alt 30. Apr 2017, 17:34
Moin...
Zitat:
Das ist die Lösung!
...denke ich nicht. Die richtige Lösung wäre, keine globalen Variablen zu benutzen.
  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 02:49 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