Lokale Variablen und Komponenten zugriff
spacer
Autor Nachricht
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 929
Erhaltene Danke: 70


Delphi 2010 Enterprise
BeitragVerfasst: Mo 19.12.11 16:46 
Ja, innerhalb der Form. Das würde ich aber nicht "global" nennen. Diese Vorgehensweise ist (je nach Einsatzzweck) durchaus legitim.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Mo 19.12.11 16:48 
user profile icontetris84 hat folgendes geschrieben Zum zitierten Posting springen:
Aber ist es dann nicht trotzdem noch Global in der Form aufrufbar?
Ja, innerhalb des Formulars kann man das so sehen. Aber anders geht es nicht. Und Sachen für die aktuelle Klasse (sprich hier das Formular) im private-Abschnitt zu deklarieren ist normal.

Zudem sollten ggf. andere Teile ebenfalls in Klassen und Units gekapselt werden. Insofern ist es ja nicht wirklich global, sondern nur für diesen Teil der GUI global. Aus anderen Units kommst du ja z.B. nicht heran. ;-)
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
tetris84 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mo 19.12.11 17:05 
Nachdem ich es mal in Private geschrieben hab kommt der Fehler "Undeklarierter Bezeichner" Was habe ich falsch gemacht?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Mo 19.12.11 20:21 
Dass deine Prozedur nicht zum Formular gehört vielleicht?

Sonst zeig mal den Quelltext dazu, raten ist nicht so gut...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
tetris84 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mo 19.12.11 21:13 
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
private
{ Private declarations }

type
TStelle=record
Vorhanden : boolean;
Stückzahl:String;
end;
TArray = array [0..100] of TStelle;

var Verkauf : TArray;

public
{ Public declarations }
end;

procedure Pruefen ();
Begin
Verkauf[55].Vorhanden := true;
End;


Zuletzt bearbeitet von tetris84 am Mo 19.12.11 21:30, insgesamt 1-mal bearbeitet
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 2544
Erhaltene Danke: 137

Windows 7 Home Premium
Visual C# 2010 Express
BeitragVerfasst: Mo 19.12.11 21:26 
Die Variable heißt Verkauf, aber du versuchst, über Array darauf zuzugreifen. Das wird die Fehlermeldung auslösen.

Außerdem halte ich es für verwirrend, einen Typ namens TArray zu deklarieren, der 101 Records aufnehmen kann. Wenn du einen solchen Typ tatsächlich öfter brauchst, solltest du ihn entsprechend benennen. Ansonsten kannst du ihn auch direkt bei der Variablendeklaration angeben:

ausblenden Delphi-Quelltext markieren
1:
var Verkauf: array[0..100] of TStelle
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
tetris84 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mo 19.12.11 21:28 
Ne das war jetzt nur son kleines Beispiel. Das ist so mein Quelltext in Kurzform.
Inklusive diesem Fehler. Der ist im echten Programm nicht. Hab die Variablen nämlich einfach nur in private kopiert.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Mo 19.12.11 23:22 
user profile icontetris84 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext markieren
1:
2:
procedure Pruefen ();
Begin
Da hatte ich ja Recht. ;-)
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dass deine Prozedur nicht zum Formular gehört vielleicht?
Mach daraus eine Methode des Formulars, dann klappt das auch.

Das ist ja genau der Sinn darin, die Variable als privates Feld zu deklarieren. Du kommst dann eben auch nur aus dem Formular und dessen Methoden heran.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home