Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Variabeln aus eigenen Prozeduren nicht nur lokal verwenden
inf0fan - Fr 26.06.09 17:49
Titel: Variabeln aus eigenen Prozeduren nicht nur lokal verwenden
kurzes Beispielprogramm:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.bsp(x:integer); begin x:=5; end;
procedure TForm1.Button1click...; begin showmessage(inttostr(x)); end; |
Hier würde bei mir statt 5 0 angeszeigt werden, was muss ich machen, damit das funktioniert?
Moderiert von
Narses: Delphi-Tags hinzugefügt
jaenicke - Fr 26.06.09 17:58
Hallo! :welcome:
Ich sehe keinen Zusammenhang zwischen den beiden Prozeduren. :nixweiss:
Meinst du sowas?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function TForm1.bsp(AValue: Integer): Integer; begin Result := AValue + 5; end;
procedure TForm1.Button1Click(Sender: TObject); var x: Integer; begin x := bsp(50); ShowMessage(IntToStr(x)); end; |
NTcomputer - Fr 26.06.09 17:59
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.bsp; begin x:=5; end;
procedure TForm1.Button1click...; begin showmessage(inttostr(x)); end; |
und oben unter
Damit definierst du eine Variable als global.
inf0fan - Fr 26.06.09 18:10
Erstmal danke für die schnellen antworten!
@jaenicke: ich wollte keine function benutzen, weil die procedure nicht nur dazu dient einen rückgabewert zu liefern, wa in meinem bsp. nicht so deutlich wird.(geht das mit function trotzdem?)
@NTcomputer: funktioniert so auch nicht.
jaenicke - Fr 26.06.09 18:11
inf0fan hat folgendes geschrieben : |
| @NTcomputer: funktioniert so auch nicht. |
Wenn du bsp nie aufrufst, natürlich nicht...
Wo du das tust hast du ja bisher nicht gepostet.
(Das meinte ich damit, dass ich keinen Zusammenhang sehe. Neben der ebenfalls fehlenden Variablendeklaration in deinem geposteten Code.)
inf0fan - Fr 26.06.09 18:12
edit: es funktioniert doch noch nicht.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.schwer1; begin
mittel(b); if b=true then schwer(c); if c=true then einfach; end; |
Mittel wird nicht immer durchgeführt und wenn nicht ist b=true(hier ist nicht der fehler). Trotzdem geht er nie in schwer rein.
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.mittel(b:boolean); begin b:=true; ... end; |
PS: wie mache ich diese Quellcodes?
Moderiert von
Gausi: Delphi-Tags hinzugefügt
NTcomputer - Fr 26.06.09 20:34
1. ich hab angenommen, dass du TForm1.bsp irgendwann früher aufrufst (sonst macht es ja gar keinen sinn)
2. verstehe ich nicht, was du mit deinem letzten Post meinst, gibts da irgendeinen zusammenhang?
3. Was willst du überhaupt erreichen?
Delete - Fr 26.06.09 20:39
Kann es sein, dass Du einen Call By Reference meinst?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.bsp(var x:integer); begin x:=5; end;
procedure TForm1.Button1click...; var a: integer; begin bsp(a); showmessage(inttostr(a)); end; |
inf0fan - Sa 27.06.09 15:26
DeddyH hat folgendes geschrieben : |
Kann es sein, dass Du einen Call By Reference meinst?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.bsp(var x:integer); begin x:=5; end;
procedure TForm1.Button1click...; var a: integer; begin bsp(a); showmessage(inttostr(a)); end; | |
Ja, bei mir fehlte das var, deshalb war das alles nur der name der procedure und die variabeln waren nicht global verwendbar. Tut mir Leid, dass ich mich ein bischen unverständlich ausgedrückt habe und vielen Dank für die Hilfe!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!