Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variable Unitübergreifend (https://www.delphipraxis.net/15220-variable-unituebergreifend.html)

Uceo 24. Jan 2004 11:45


Variable Unitübergreifend
 
Hallo, ich habe in meiner Unit2 eine variable namens "company". In Unit 3 möchte ich diese variable verwenden. Aber delphi beschwert sich mit undefinierter bezeichner. Wie kann ich aus der alten Unit die variable hohlen? Danke!

Luckie 24. Jan 2004 11:49

Re: Variable Unitübergreifend
 
Wo hast du sie denn in Unit2 deklariert? Und hast du Unit2 in den uses von Unit3 aufgenommen?

Btw. sind globale Variablen sehr gefährlcih und nicht OOP konform. Ich würde sie vermeiden wo es geht und stattdessen den Wertt als parameter einer Funktion weitergeben.

Uceo 24. Jan 2004 12:31

Re: Variable Unitübergreifend
 
Und wie mache ich eine variable global?

Pseudemys Nelsoni 24. Jan 2004 13:13

Re: Variable Unitübergreifend
 
definier sie einfach über "implementation"

Delphi-Quellcode:
var
  Form1: TForm1;
  deineVariable: DeinTyp;

...

implementation

Matze 24. Jan 2004 14:30

Re: Variable Unitübergreifend
 
oder deklariere sie unter public
Delphi-Quellcode:
public
  a: integer;
In Form3 dann:
Delphi-Quellcode:
uses Unit2;

...

//Aufruf:
Form2.a := 5;

Uceo 24. Jan 2004 15:26

Re: Variable Unitübergreifend
 
Ich habe jetzt in Unit2:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
variable := String(Edit1.Text);
end;
und in Unit3:

Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
form3.Caption := 'Musikspiel ' + String(Form2.company);
end;
Aber in Unit3 schreibt er einfach in die Form3 'Musikspiel ' und nichts weiter. Es wird also nicht übernommen! Woran kann das liegen?

Stanlay Hanks 24. Jan 2004 15:33

Re: Variable Unitübergreifend
 
Zitat:

Zitat von Uceo
Ich habe jetzt in Unit2:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
variable := String(Edit1.Text);
end;
und in Unit3:

Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
form3.Caption := 'Musikspiel ' + String(Form2.company);
end;
Aber in Unit3 schreibt er einfach in die Form3 'Musikspiel ' und nichts weiter. Es wird also nicht übernommen! Woran kann das liegen?

Hmmm...Hast du "Variable := String()..." nur als Beispiel geschrieben oder heißt die Variable wirklich so? :gruebel: Dann weist du ja nicht "company" den Wert zu, sondern "Variable". Im Prinzip ist also "company" noch leer.

Man liest sich, Stanlay :hi:

Uceo 24. Jan 2004 16:01

Re: Variable Unitübergreifend
 
Das war nur als beispiel!

Uceo 24. Jan 2004 17:50

Re: Variable Unitübergreifend
 
So, hier ist das ganze Problem: Das Problem auf meinem Server. Die Variablen werden alle in Unit2 vereinbart und gebraucht. Es handelt sich um die Texteingabe variable "company". In Unit3 soll das als Fenstertitel: form3.caption := 'Das Musikspiel ' + String(form2.company); angezeigt werden, es wird aber nur Musikspiel angezeigt und die Variable sagt mir Delphi ist ''. Ich hoffe ihr könnt mir helfen! Vielen Dank! Uceo


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