![]() |
Prozedur lässt sich net aufrufen.
Gute Abend,
Ich habe ein kleine Prozeduren problem...ich will innerhalb einer von mir geschriebenen Prozedur eine andere procedur aufrufen...leider klappt das nicht. Ich bekomme immer die Meldung : "Undefinierter Bezeichner :spielstarten"... nun meine frage : Was mache ich falsch? ich hoffe mir kann jemand helfen :)
Delphi-Quellcode:
Hier Soll wenn bei der MsgBox auf Ja geklickt wird die procedure spielstarten aufgerufen werden.
procedure gewinner;
begin if spielerdran = 9 then begin ShowMessage('Unentschieden!'); ZeroMemory(@ergebnis,SizeOf(ergebnis)); end; if (ergebnis[1,1] = 'X') and (ergebnis [2,1]= 'X') and (ergebnis[3,1] = 'X') or (ergebnis[1,2] = 'X') and (ergebnis [2,2]= 'X') and (ergebnis[3,2] = 'X') or (ergebnis[1,3] = 'X') and (ergebnis [2,3]= 'X') and (ergebnis[3,3] = 'X') or (ergebnis[1,1] = 'X') and (ergebnis [1,2]= 'X') and (ergebnis[1,3] = 'X') or (ergebnis[2,1] = 'X') and (ergebnis [2,2]= 'X') and (ergebnis[2,3] = 'X') or (ergebnis[3,1] = 'X') and (ergebnis [3,2]= 'X') and (ergebnis[3,3] = 'X') or (ergebnis[1,1] = 'X') and (ergebnis [2,2]= 'X') and (ergebnis[3,3] = 'X') or (ergebnis[1,3] = 'X') and (ergebnis [2,2]= 'X') and (ergebnis[3,1] = 'X') then begin //ShowMessage(namespieler1 + ' gewinnt die Runde!'); spieler1_spielstand := spieler1_spielstand+1; ZeroMemory(@ergebnis,SizeOf(ergebnis)); if Application.MessageBox('Wollen Sie nocheinmal spielen?', 'Spieler 1 gewinnt die Runde!!', MB_ICONINFORMATION or MB_YESNO) = IDYES then begin spielstarten; end; if Application.MessageBox('Wollen Sie nocheinmal spielen?', 'Spieler 1 gewinnt die Runde!!', MB_ICONINFORMATION or MB_YESNO) = IDNO then begin Form1.Close; end; end;
Delphi-Quellcode:
Danke für eure Hilfe!
procedure spielstarten;
begin spielerdran := 0; Form1.lbl_spieler1.Caption := inttostr(spieler1_spielstand); Form1.lbl_spieler2.Caption := inttostr(spieler2_spielstand); if (Form1.lbl_spieler1.Caption = '0') and (Form1.lbl_spieler2.Caption ='0') then begin namespieler1 := InputBox('Name Spieler1', 'Geben Sie bitte Ihren Namen ein!','Spieler1'); namespieler2 := InputBox('Name Spieler2', 'Geben Sie bitte Ihren Namen ein!','Spieler2'); end; Form1.Panel1.Caption := ''; Form1.Panel2.Caption := ''; Form1.Panel3.Caption := ''; Form1.Panel4.Caption := ''; Form1.Panel5.Caption := ''; Form1.Panel6.Caption := ''; Form1.Panel7.Caption := ''; Form1.Panel8.Caption := ''; Form1.Panel9.Caption := ''; Form1.Panel1.Visible := true; Form1.Panel2.Visible := true; Form1.Panel3.Visible := true; Form1.Panel4.Visible := true; Form1.Panel5.Visible := true; Form1.Panel6.Visible := true; Form1.Panel7.Visible := true; Form1.Panel8.Visible := true; Form1.Panel9.Visible := true; Form1.Panel1.Enabled := true; Form1.Panel2.Enabled := true; Form1.Panel3.Enabled := true; Form1.Panel4.Enabled := true; Form1.Panel5.Enabled := true; Form1.Panel6.Enabled := true; Form1.Panel7.Enabled := true; Form1.Panel8.Enabled := true; Form1.Panel9.Enabled := true; Form1.Label2.Caption := (namespieler1 + ' ist an der Reihe'); Form1.Label3.Caption := namespieler1; Form1.Label5.Caption := namespieler2; end; |
Re: Prozedur lässt sich net aufrufen.
Ist alles in der selben unit deklariert?
|
Re: Prozedur lässt sich net aufrufen.
Du musst entweder die Prozedur oberhalb der Stelle deklarieren, wo du sie verwendest oder sie als Methode deines Formulars deklarieren.
Delphi-Quellcode:
Oder:
procedure Test;
begin end; procedure UseTest; begin Test; end;
Delphi-Quellcode:
type
TFormX = class(TForm) ... private procedure Test; procedure UseTest; end; ... implementation procedure TFormX.UseTest; begin Test; end; procedure TFormX.Test; begin end; |
Re: Prozedur lässt sich net aufrufen.
Zitat:
|
Re: Prozedur lässt sich net aufrufen.
Falls die Prozedur nicht in der gleichen Unit definiert ist, muss du diese in die Uses einbinden und den Prototyp der Prozedur als Kopf deklarieren.
Delphi-Quellcode:
Funktioniert übrigens auch, wenn diese Prozedur in der gleichen Unit, allerdings unterhalb der Aufruffunktion steht
procedure xy();
implementation ... procedure xy(); begin // Was auch immer drin stehen soll end; mfg |
Re: Prozedur lässt sich net aufrufen.
danke leute...jetzt funktioniert es
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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-2025 by Thomas Breitkreuz