Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variablen übergeben (https://www.delphipraxis.net/10136-variablen-uebergeben.html)

hummer 12. Okt 2003 12:31


Variablen übergeben
 
Hallo
ich habe eine globale integer Varible vI in einer form1, der durch ein Ereignis ein Wert zugewiesen wird. Durch ein anderes Ereignis wird eine neue Form aufgerufen und durch das form2.create Ereignis auf einem edit Feld auf Form2 die Variable vI ausgegeben.

Jetzt das Problem:
In dem Editfeld erscheint immer eine Null, obwohl die Variable garantiert nie den Wert 0 hatt.

Hoff ihr könnt mir helfen. :-D

Daniel B 12. Okt 2003 12:33

Re: Variablen übergeben
 
Dann Debugge dochmal Dein Programm und stelle 100%ig fest ob die Variable wirklich >0 ist.

jbg 12. Okt 2003 12:35

Re: Variablen übergeben
 
Was verstehst du unter global ? Wenn du die Variable als Feld in eine Klasse scheibst, ist sie nicht global und wird bei jeder Instanz der Klasse mit 0 initialisiert und jede Instanz hat seine eigene Kopie dieses Feldes. Global ist eine Variable, wenn sie in keiner Klasse und Funktion deklariert ist. Als bestes Beispiel dienen hier die Form-Variablen:
Delphi-Quellcode:
TForm1 = ...

var
  Form1: TForm1; // <-- das ist eine globale Variable

hummer 12. Okt 2003 12:42

Re: Variablen übergeben
 
Meine Variable sieht so aus

Delphi-Quellcode:
var
  Form1: TForm1; //die ist global
  vI : Integer;  //die doch auch
Ist vI etwa nicht global. Hab ich zumindestens im Info Unterricht so gelernt.

Christian Seehase 12. Okt 2003 12:59

Re: Variablen übergeben
 
Moin Hummer,

doch die Variable ist global.
Ich denke mal, ich weiss, wo der Fehler ist.
Du gehst davon aus, dass das Form2 erzeugt wird, wenn Du es aufrufst.
Ohne Eingriff in die Projektdatei, werden aber alle Formulare schon beim Programmstart erzeugt, so dass die Variable zu diesem Zeitpunkt den Wert 0 hat.
Erst wenn Du das Erzeugen des Formulares aus der Projektdatei herausnimmst, und vor dem Anzeigen dynamisch erzeugst würdest Du den gerade aktuellen Wert der Variablen erwischen.

Verlagere einfach mal den Inhalt des OnCreate Ereignisses in das OnShow Ereignis.

hummer 12. Okt 2003 13:19

Re: Variablen übergeben
 
Super Danke funktioniert sofort. :thuimb:

:bounce1: :bouncing4: :firejump: :bounce2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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