Entwickler-Ecke
Sonstiges (Delphi) - Variable bzw. Array Problem!
delphist - Sa 30.08.03 18:22
Titel: Variable bzw. Array Problem!
Hallo!
Ich möchte auf in einem anderen Formular erstellten Daten zugreifen!
Aber das klappt nicht!
Wie funktioniert das?
Muss ich dazu die Daten immer in ein Edit, Listbox ... zwischenspeichern?
Bis habe ich das immer so gemacht und Visible auf False gestellt!
Gibt es da keine elegantere Lösung?
mfg delphist
UGrohne - Sa 30.08.03 18:25
Auf welche Daten willst Du denn zugreifen?
Um das dann zu machen, musst Du nur die andere Unit in die uses-Liste oben hinzufügen, dann den Formularnamen. gefolgt von dem was Du willst.
Wenn Du Variablen innerhalb der Unit hast, musst Du sicherstellen, dass sie im public-Bereich deklariert sind, sonst hast Du von außen keinen Zugriff drauf.
delphist - Sa 30.08.03 18:49
Hallo!
Kannst du mir das Bitte an einem Beispiel erläutern?
So komme ich nämlich nicht weiter!
mfg delphist
FeG - Sa 30.08.03 18:54
Hallo,
du musst in der Deklaration des zweiten Forms unter "public" die gewünschten Variablen eintragen und im Hauptform (oder da, wo du auf die Variablen zugreifen willst...) nach "Implementation" uses Form2 ;
eintragen
MfG,
FeG
delphist - Sa 30.08.03 19:12
Also wenn ich die var Anweisung nach der public Anweisung eifüge sagt er end erwartet!
Kannst du mir nicht bitte an einem kl. beispiel es zeigen???
mfg delphist
UGrohne - Sa 30.08.03 19:25
Ohne var!!! Schau Dir mal nach einem buch, damit Du die die Pascal-Syntax, besonders des Headers und von klassen verstehst.
Delphi-Quelltext
1: 2: 3:
| public einvar:integer; .... |
FeG - Sa 30.08.03 19:27
delphist hat folgendes geschrieben: |
Also wenn ich die var Anweisung nach der public Anweisung eifüge sagt er end erwartet! |
Dann braucht er halt entweder noch ein "end;" oder ein ";"... sind die Delphi-Compilermeldungen denn so kompliziert??
Probier das mal aus, wenn's net klappt, poste den betreffenden Quelltext...
MfG,
FeG
delphist - Sa 30.08.03 19:27
UGrohne hat folgendes geschrieben: |
Ohne var!!! Schau Dir mal nach einem buch, damit Du die die Pascal-Syntax, besonders des Headers und von klassen verstehst.
Delphi-Quelltext 1: 2: 3:
| public einvar:integer; .... | |
Ja, leider wird in den Delphi Buechern nur einen Zeichne ein Edit auf die Malfläche gesagt und nicht den eigentlichen Syntax!
Und ich muss sagen der Syntax ist einfach viel besser als bei anderen Sprachen!
Vergleich: VisualBasic!
mfg delphist
hansa - Sa 30.08.03 19:27
delphist - Sa 30.08.03 19:28
hansa hat folgendes geschrieben: |
|
Nein!
Das hatte ich nicht vergessen!
Soviel weiß ich schon von Delphi!!!
mfg delphist
delphist - Sa 30.08.03 19:34
Hallo!
Jetzt sagt er in der Unit, wo ich auf die Variable zugreifen will, dass er die Var nicht kennt!
Was jetzt?
Ich habe in dieser Unit nach implementation und uses dateunauswahl; eingegeben[/b]
hansa - Sa 30.08.03 19:35
das war auch zu kurz. 8) Ich weiß wo dran es liegt. Du mußt das ganze nur im Interface-Teil deklarieren. Und üben mußt Du auch noch, sonst wird das nichts. D.h.: setze erst mal eine Variable i: integer; da hin. Mit uses Form1; kommt die dann in eine andere Unit. Und wenn das compiliert, dann gent es weiter.
delphist - Sa 30.08.03 19:38
hansa hat folgendes geschrieben: |
das war auch zu kurz. 8) Ich weiß wo dran es liegt. Du mußt das ganze nur im Interface-Teil deklarieren. Und üben mußt Du auch noch, sonst wird das nichts. D.h.: setze erst mal eine Variable i: integer; da hin. Mit uses Form1; kommt die dann in eine andere Unit. Und wenn das compiliert, dann gent es weiter. |
Gleich Problem!
Wie in meinem letzten Beitrag beschrieben:
VARIABEL UNDEFINIERT!
mfg delphist
hansa - Sa 30.08.03 19:44
steht in der ein Unit so was in der Richtung:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Unit Unit2;
Interfaces
uses Unit1;
var i : integer;
implementation;
..... |
:?: :?:
delphist - Sa 30.08.03 20:50
hansa hat folgendes geschrieben: |
steht in der ein Unit so was in der Richtung:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Unit Unit2;
Interfaces
uses Unit1;
var i : integer;
implementation;
..... |
:?: |
Jetzt kommt keine Fehlermeldung, aber die Variabel ist wieder leer!
Gibt es keine funktionierende Lösung!
mfg delphist
:?:
hansa - Sa 30.08.03 20:54
dann poste mal den Quelltext. Antwort kriegst Du dann sofort von dem, der es zuerst sieht. 8)
Christian S. - Sa 30.08.03 20:57
Ich habe ein wenig den Überblick verloren, was genau gefragt ist. Ich versuche es einfach mal. Folgendes sei die Unit, die deine Form enthält:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| unit Unit1;
interface
uses
type TForm1
var Form1: TForm1;
implementation
{$R *.dfm}
uses unit2;
procedure TForm1.FormCreate(Sender: TObject); begin ShowMessage(IntToStr(unit2.i)); end;
end. |
Und folgendes ist Unit2, deren Variable "i" verwendet werden soll:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| unit Unit2;
interface
var i : INTEGER = 355;
implementation
end. |
So, das funktioniert bei mir, wenn du die {...} so ergänzt, wie sie von Delphi erzeugt werden. Im FormCreate kannst Du auch das "unit2" vor dem i weglassen, aber ich finde das übersichtlicher.
Hoffe, nicht am Thema vorbei geschrieben und geholfen zu haben.
MfG
Peter
delphist - Sa 30.08.03 21:19
Also das Thema hast du chon richtig erwischt!
Aber bei mir klappt es so immer noch nicht!
Er sagt weiterhin er kennt die Variabel nicht!
mfg delphist
Christian S. - Sa 30.08.03 21:52
Sorry, aber bis auf die Sachen, die ich mit {...} gekürzt habe, läuft das Programm so bei mir. Poste doch mal Deine beiden Units. Vielleicht findet sich dann der Fehler. (Tarnfehler, mal ganz was neues. Kann man hinter den feindlichen Linien abwerfen und dann funktionieren deren Geräte nicht mehr! :lol: )
delphist - So 31.08.03 11:35
Funzt immer noch nicht!
Bin gestern erstmal schlafen gegangen aus lauter Verzweiflung!
Naja, man hat doch anfangs zum Beispiel in Delphi 1 noch eigene Dialogboxen gemacht! Wie hat manj damals zum Beispiel den Datienamen zurückgegeben?
mfg delphist
FeG - So 31.08.03 11:59
delphist hat folgendes geschrieben: |
Naja, man hat doch anfangs zum Beispiel in Delphi 1 noch eigene Dialogboxen gemacht! Wie hat manj damals zum Beispiel den Datienamen zurückgegeben? |
:?: :?: :?:
HÄ? Was hat das damit zu tun?
mach doch einfach mal so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| unit Form1
implementation
uses Form2;
procedure TForm1.OnCreate(Sender: TObject); begin ShowMessage(IntToStr(Form2.i)) end;
unit Form2;
type TForm2 = class ... public i: integer; |
Was funzt daran bitte nicht?
MfG,
FeG
delphist - So 31.08.03 12:29
FeG hat folgendes geschrieben: |
delphist hat folgendes geschrieben: | Naja, man hat doch anfangs zum Beispiel in Delphi 1 noch eigene Dialogboxen gemacht! Wie hat manj damals zum Beispiel den Datienamen zurückgegeben? |
:?: :?: :?:
HÄ? Was hat das damit zu tun?
mach doch einfach mal so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| unit Form1
implementation
uses Form2;
procedure TForm1.OnCreate(Sender: TObject); begin ShowMessage(IntToStr(Form2.i)) end;
unit Form2;
type TForm2 = class ... public i: integer; |
Was funzt daran bitte nicht?
MfG,
FeG |
Also ich erstelle jetzt ein neues Projekt!
Und probiere es direkt so aus wie du!
mfg delphist
delphist - So 31.08.03 12:32
delphist hat folgendes geschrieben: |
FeG hat folgendes geschrieben: | delphist hat folgendes geschrieben: | Naja, man hat doch anfangs zum Beispiel in Delphi 1 noch eigene Dialogboxen gemacht! Wie hat manj damals zum Beispiel den Datienamen zurückgegeben? |
:?: :?: :?:
HÄ? Was hat das damit zu tun?
mach doch einfach mal so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| unit Form1
implementation
uses Form2;
procedure TForm1.OnCreate(Sender: TObject); begin ShowMessage(IntToStr(Form2.i)) end;
unit Form2;
type TForm2 = class ... public i: integer; |
Was funzt daran bitte nicht?
MfG,
FeG |
Also ich erstelle jetzt ein neues Projekt!
Und probiere es direkt so aus wie du!
mfg delphist |
Form2.dcu nicht gefunden!
delphist - So 31.08.03 12:38
delphist hat folgendes geschrieben: |
delphist hat folgendes geschrieben: | FeG hat folgendes geschrieben: | delphist hat folgendes geschrieben: | Naja, man hat doch anfangs zum Beispiel in Delphi 1 noch eigene Dialogboxen gemacht! Wie hat manj damals zum Beispiel den Datienamen zurückgegeben? |
:?: :?: :?:
HÄ? Was hat das damit zu tun?
mach doch einfach mal so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| unit Form1
implementation
uses Form2;
procedure TForm1.OnCreate(Sender: TObject); begin ShowMessage(IntToStr(Form2.i)) end;
unit Form2;
type TForm2 = class ... public i: integer; |
Was funzt daran bitte nicht?
MfG,
FeG |
Also ich erstelle jetzt ein neues Projekt!
Und probiere es direkt so aus wie du!
mfg delphist |
Form2.dcu nicht gefunden! |
Jetzt klappt es aber dass ist immer noch nicht das was ich suche!
mfg delphist
Christian S. - So 31.08.03 12:59
@FeG: die Variable muss nicht unbedingt in den public-Teil einer Form-Deklaration. Die Variable kann auch "frei" im Sinne von "nicht an ein Objekt gebunden" sein. Aber wenn ich Deine anderen Postings so lese, gehe ich mal davon aus, dass Du das weist.
@delphist: wenn es nicht das ist, was Du suchst, dann drücke Dich bitte mal endlich klar aus, was Du haben willst!
MfG
Peter
FeG - So 31.08.03 15:23
Peter Lustig hat folgendes geschrieben: |
Aber wenn ich Deine anderen Postings so lese, gehe ich mal davon aus, dass Du das weist. |
:D Danke...
Und: Ja, ich weiß, dass das auch geht... Is aber nicht im Sinne von OOP, deshalb hab' ich's über public gepostet...
Zitat: |
@delphist: wenn es nicht das ist, was Du suchst, dann drücke Dich bitte mal endlich klar aus, was Du haben willst! |
Dem kann ich mich allerdings nur anschließen!
MfG,
FeG
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!