Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Globale Variablen in einer anderen Form verwenden (https://www.delphipraxis.net/160505-globale-variablen-einer-anderen-form-verwenden.html)

Picard95 16. Mai 2011 17:35

Delphi-Version: 5

Globale Variablen in einer anderen Form verwenden
 
Hallo zussammen,
Zu anfang will ich noch kurz sagen ich hab Delphi 4 (unsere Schule hatte nix anderes) und nicht 5 ich konnte 4 nur leider nicht auswählen...
Ich habe folgendes Problem:
Ich möchte eine in Form2 global deklarierte Variable in der Form 3 in einer selbst deklarierten procedur verwenden.
Dummerweise erkennt delphi die Variable dort nicht.
Delphi-Quellcode:
procedure TForm2.Button26Click(Sender: TObject);
begin
  Abkuerzung:='H';
  [COLOR="Red"]TForm3.Trage_ein;[/COLOR]
  Form3.showmodal;
end;
Delphi-Quellcode:
procedure TForm3.Trage_ein;
var
  Atom:string;

begin
  [COLOR="Red"]Atom:=Form2.Abkuerzung;[/COLOR]
  if Stoff='H'
    then
      begin

        listbox1.items.add('klappt');
      end;
end;
(Ich habe die beiden Units schon miteinander Verbunden per Uses und könnte auch (wenn ich eben die roten zeilen rausnehmen würde) von Form 2 per button auf Form 3 zugreifen (siehe quelltext))
Danke schonmal für die antworten!!!

nuclearping 16. Mai 2011 17:44

AW: Globale Variablen in einer anderen Form verwenden
 
Du mußt die Instanz angeben. Also Form3 statt TForm3.

Picard95 16. Mai 2011 17:50

AW: Globale Variablen in einer anderen Form verwenden
 
sorry aber es kommt immernoch die fehlermeldung: [Error] Unit3.pas(39): Undeclared identifier: 'Abkuerzung' in der unit 3

Picard95 16. Mai 2011 17:51

AW: Globale Variablen in einer anderen Form verwenden
 
ausserdem erscheint die variable auch nicht (wie zum beispiel buttonXY wenn ich in der unit3 Form2. eingebe

Phoenix 16. Mai 2011 17:56

AW: Globale Variablen in einer anderen Form verwenden
 
1.) Bitte nicht pushen. Ändere bitte Deinen letzten Beitrag wenn Du etwas hinzuzufügen hast.

2.) Wenn Du eine Variable wirklich Global deklarierst, dann ist sie im globalen Scope verfügbar. Du kannst dann nicht mit Form2.Abkuerzung darauf zugreifen sondern nur mit Abkuerzung.

3.) Globale Variablen sind ganz, ganz, ganz, ganz, ganz, ganz böse. Es gibt keinen einzigen validen Grund warum man sowas brauchen sollte. Es gibt genug Programmiersprachen in denen es sowas noch nichtmal gibt, und dort wird sowas auch nicht vermisst. Versuche also am besten ohne sowas auszukommen.

rainerg 16. Mai 2011 17:59

AW: Globale Variablen in einer anderen Form verwenden
 
Wie und wo definierst du Abkürzung?
So sieht das aus, als hättest du einen Property zu Form2 definiert. Oder ist es eher eine normale Stringvariable?
Du musst die Unit, in der Du die Variable deklarierst auch mit in die Unit der Form3 einbinden.

Ich für meinen Teil packe globale Variablen immer in eine UNIT Data, macht das Verwalten leichter, weil dann die 'Global-Player' nur an einer Stelle sind.

Picard95 16. Mai 2011 18:01

AW: Globale Variablen in einer anderen Form verwenden
 
ah ok nach ein wenig weiterem tüfteln klappts jetzt.
Für die die es interressiert der veränderte Quelltext:
Delphi-Quellcode:
procedure TForm2.Button26Click(Sender: TObject);
begin
  Abkuerzung:='H';
  Form3.Trage_ein;
  Form3.showmodal;
end;
Delphi-Quellcode:
procedure TForm3.Trage_ein;
var
  Atom:string;

begin
  Atom:=unit2.Abkuerzung;
  if Atom='H'
    then
      begin

        listbox1.items.add('klappt');
      end;
end;

Picard95 16. Mai 2011 18:03

AW: Globale Variablen in einer anderen Form verwenden
 
also Abkuerzung ist eine standart string variable (maximal 3 buchstaben lang) die ich halt brauche um in der form3 112 fälle zu unterscheiden

himitsu 16. Mai 2011 18:37

AW: Globale Variablen in einer anderen Form verwenden
 
Zitat:

Zu anfang will ich noch kurz sagen ich hab Delphi 4 (unsere Schule hatte nix anderes) und nicht 5 ich konnte 4 nur leider nicht auswählen...
Du kannst das zwar nicht hier in dem Unterfprum auswählen,
aber du kannst es in dein Profil eintragen, dann sieht es auch jeder. :zwinker:
http://www.delphipraxis.net/profile.php?do=editprofile

(wenn hier im Unterforum eine 5 steht, gehen eh viele einige davon aus, daß dort nix ausgewählt wurde :stupid: )

mschaefer 16. Mai 2011 22:15

AW: Globale Variablen in einer anderen Form verwenden
 
1. Wenn es was Globales sein muss definiere ich es meist in einem Datamodule.
2. In den Optionen wird eingestellt, das dieses Datamodule zuerst aufgebaut wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr.
Seite 1 von 2  1 2      

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