AGB  ·  Datenschutz  ·  Impressum  







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

Variablen übergeben

Ein Thema von hummer · begonnen am 12. Okt 2003 · letzter Beitrag vom 12. Okt 2003
Antwort Antwort
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#1

Variablen übergeben

  Alt 12. Okt 2003, 13:31
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.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2

Re: Variablen übergeben

  Alt 12. Okt 2003, 13:33
Dann Debugge dochmal Dein Programm und stelle 100%ig fest ob die Variable wirklich >0 ist.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Variablen übergeben

  Alt 12. Okt 2003, 13:35
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
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Variablen übergeben

  Alt 12. Okt 2003, 13:42
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.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Variablen übergeben

  Alt 12. Okt 2003, 13:59
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Variablen übergeben

  Alt 12. Okt 2003, 14:19
Super Danke funktioniert sofort.

Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  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 18:13 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