![]() |
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:
(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))
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; Danke schonmal für die antworten!!! |
AW: Globale Variablen in einer anderen Form verwenden
Du mußt die Instanz angeben. Also Form3 statt TForm3.
|
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
|
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
|
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. |
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. |
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; |
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
|
AW: Globale Variablen in einer anderen Form verwenden
Zitat:
aber du kannst es in dein Profil eintragen, dann sieht es auch jeder. :zwinker: ![]() (wenn hier im Unterforum eine 5 steht, gehen eh viele einige davon aus, daß dort nix ausgewählt wurde :stupid: ) |
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 02:14 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 by Thomas Breitkreuz