Wert einer globalen Variablen geht verloren

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
niederrheiner
Beiträge: 87
Registriert: Sa 19. Jan 2008, 17:21
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Rheinberg

Wert einer globalen Variablen geht verloren

Beitrag von niederrheiner »

Hallo an Alle,
ich weiß nicht ob dieses Thema hier hin passt, wenn nein, sagt mir bitte wo es besser passt. Danke.

Nun zu meinem eigentlichen Problem. Ich habe drei Units, Unit_Main, Unit_Sub und My_Utils. Die beiden Units _Main und _Sub haben jeweils eine Form. _Main ruft _Sub auf. In My_Utils habe ich unter anderem eine Variable TR_Key definiert. My_Utils wird von den beiden anderen Units per uses eingefügt.

In _Main ermittle ich einen Wert für TR_Key. Unmittelbar vor dem Aufruf von Form_Sub.show hat TR_Key auch noch diesen Wert. Bei eintritt in Form_Sub_show, unmittelbar nach dem Schlüsselwort begin ist der Wert von TR_Key gleich 0, er war aber definitiv <> 0.

Wo kann der Wert verloren gegangen sein? Kann ich vielleicht dem Form_Sub.show einen Parameter mit geben?

Danke für Eure Hilfe und Tipps.

MfG
Günter

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Wert einer globalen Variablen geht verloren

Beitrag von monta »

Da hast du wohl irgendwas falsch deklariert bzw. eventuell eine neue Variable mit gleichem Namen die die Alte überdeckt?

Wenn sie wirklich global ist, muss der Wert ansonsten erhalten bleiben.
Johannes

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Wert einer globalen Variablen geht verloren

Beitrag von Euklid »

niederrheiner hat geschrieben:In My_Utils habe ich unter anderem eine Variable TR_Key definiert.
Hallo,

wo genau hast du denn die Variable definiert? Wenn du sie nach einem "var" direkt über "Implementation" definierst, und in den anderen Units keine gleichnamige Variable verwendest, sollte es funktionieren.

Viele Grüße, Euklid

Antworten