Einzelnen Beitrag anzeigen

Benutzerbild von soup
soup

Registriert seit: 5. Feb 2005
9 Beiträge
 
Delphi 7 Personal
 
#1

auf button click warten (kein Application.ProcessMessages!)

  Alt 25. Mär 2005, 18:08
mache ein Schachspiel.
wie ihr vielleicht wisst darf man beim Schach seinen Bauern gegen eine andere Figur tauschen wenn man die letzte Reihe erreicht.
In meinem Spiel soll das so gehen:

erreicht ein spieler mit einem bauern die (für ihn) hinterste reihe - was ich problemlos abfragen kann - wird eine Prozedur aufgerufen:

Delphi-Quellcode:
procedure TForm1.VerwandleBauer;
begin
  DButton.Visible := true;
  LButton.Visible := true;
  SButton.Visible := true;
  TButton.Visible := true;

  repeat { Application.ProcessMessages - blöd weil weiterspieln möglich} until UnitType > 1;
  {UnitType 1 ist der Bauer, beim Button-Click wird der Unittype 2,3,4 oder 5}

  DButton.Visible := false;
  LButton.Visible := false;
  SButton.Visible := false;
  TButton.Visible := false;

end;
unten am spielfeldrand erscheinen 4 Buttons für die 4 möglichen Verwandlungen des Bauern (Dame, Turm ...)

in der Prozedur soll so lange 'verharrt' werden bis einer der Buttons geklickt wurde. Das ist nötig, denn sonst könnte man einfach weiterspielen und die Buttons würden bleiben
--> Application.ProcessMessages geht hier also nicht.

aber ohne das schmiert das prog ab.

[weniger wichtig]Beim Klick auf irgendeinen der Buttons wird in der OnClick-Prozedur eine entsprechende Variable (unitType) geändert - ein Integer, der vom Spiel dann nach der Prozedur in ein Array kopiert wird. [/weniger wichtig]

Gibt es eine möglichkeit
die Buttons anzuzeigen zu lassen
darauf zu warten das einer geklickt wird und dannin der prozedur weiterzumachen?

Danke im Vorraus!
  Mit Zitat antworten Zitat