Autor Beitrag
inf0fan
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 26.06.09 17:49 
kurzes Beispielprogramm:
ausblenden 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 user profile iconNarses: Delphi-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 26.06.09 17:58 
Hallo! :welcome:

Ich sehe keinen Zusammenhang zwischen den beiden Prozeduren. :nixweiss:
Meinst du sowas?
ausblenden 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)); // 55
end;
NTcomputer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

Windows 7 x64
Delphi 2005 PE
BeitragVerfasst: Fr 26.06.09 17:59 
ausblenden 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
ausblenden Delphi-Quelltext
1:
2:
private
  x:integer;


Damit definierst du eine Variable als global.
inf0fan Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 26.06.09 18:11 
user profile iconinf0fan hat folgendes geschrieben Zum zitierten Posting springen:
@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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 26.06.09 18:12 
edit: es funktioniert doch noch nicht.

ausblenden 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.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.mittel(b:boolean);
begin
    b:=true;
...
end;


PS: wie mache ich diese Quellcodes?

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
NTcomputer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

Windows 7 x64
Delphi 2005 PE
BeitragVerfasst: 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?
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 26.06.09 20:39 
Kann es sein, dass Du einen Call By Reference meinst?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.bsp(var x:integer); //mit var davor
begin
  x:=5;
end;

procedure TForm1.Button1click...;
var a: integer;
begin
  bsp(a);
  showmessage(inttostr(a));
end;
inf0fan Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 27.06.09 15:26 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Kann es sein, dass Du einen Call By Reference meinst?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.bsp(var x:integer); //mit var davor
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!