![]() |
globale Variablen
Jetzt hab ich eine ganz banale FRage, aber irgendwie komme ich trotzdem nicht voran:
Wenn ich im Formular1 die Variable sp auf 2 setze, wie schaffe ich es, dass er sich das bis zum 7.Formular "merkt". D.h. ich habe die Variable in beiden FOrmularen global(also 2x) definiert, ist das der Fehler, denn normalerweise verschwindet doch keine Varibale aus dem Speicher?!? Vielen Dank im voraus. |
Re: globale Variablen
Ganz allgemein sollte man keine globalen Variablen verwenden, wenn es nicht notwendig ist. Aber versuch mal, mittels
Delphi-Quellcode:
zuzugreifen, damit Delphi genau weiß, welche gemeint ist. Voraussetzung ist allerdings, dass die Variable im interface- und nicht im implementation-Abschnitt deklariert wurde.
Unitname.Variablenname
|
Re: globale Variablen
Hallo,
ja das ist der Fehler. Du darfst sie nicht 2 Mal deklarieren. Wenn du die Variable bei "var Form1: TForm" deklarierst und die Unit1 in Unit7 über die "uses" einbindest, müsstest du die Variable nutzen können. Du kannst sie aber auch unter "public" von Unit1 deklarieren und über "Form1.Variable" im Unit7 darauf zugreifen, wenn die Unit dort eingebunden wurde. Ich hoffe, ich erzähle gerade keinen Mist. ;) Grüße, Matze |
Re: globale Variablen
wenn sie im interface teil stehen soll wo muss sie dann deklariert werden?
|
Re: globale Variablen
Unter var
|
Re: globale Variablen
Wenn ich das mache, sagt der Compiler in Form7 bei der Varibale, z.B. form1.sp undefinierter Bezeichner, unter public nimmt er es, liest die Variable aber auch nicht richtig aus!
|
Re: globale Variablen
Unitname, nicht Formname, Du musst schon genau lesen, was wir hier schreiben.
[edit] Wobei es schon besser wäre, Properties zu definieren, da warst Du schon auf einem guten Weg. [/edit] |
Re: globale Variablen
Also wenn ich globale Variablen brauche ... dann packe ich die mir in eine Klasse in einer eigenen Unit.
Diese Unit zu jeder anderen Unit hinzugefügt und gut ist ... Damit ists global und trotzdem OOP :mrgreen: cu Oliver |
Re: globale Variablen
Aber keine globale Variable mehr im eigentlichen Sinne. OK, die Klasseninstanz könnte man dann als globale Variable definieren :mrgreen:
|
Re: globale Variablen
genau so ;)
Delphi-Quellcode:
unit GlobalData;
interface type TGlobalData = class ... end; var MyGlobalData : TGlobalData; implementation ... initialization MyGlobalData := TGlobalDate.Create; finalization MyGlobalData.Free; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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