Ich versuche mich an dem Spiel Kniffel mit mehreren Spielern.
Dabei dachte ich daran, den Spielzug nach dem Würfeln über einen Button auswählen zu können, welcher nur erscheint, wenn das entsprechende Feld noch frei ist.
Bei der Umsetzung habe ich die Information in einem record pro Spieler gespeichert, wobei am Anfang jeder Runde ausgelesen wird, welche Spielzüge noch frei sind(siehe Quelltext).
Befindet sich die Prozedur innerhalb eines Ereignisses, funktioniert alles so weit, um jedoch nicht extra klicken zu müssen, wollte ich diese am Ende der Auswahl automatisch ausführen lassen.
Nutze ich hierfür eine eigene Prozedur, damit der Quelltext nicht zu lang wird, welche bei jedem Auswahlbutton aufgerufen wird, werden die Komponenten in der prozedur jedoch nicht erkannt (z.B. Error: Identifier not found "BitBtn_eins").
Delphi-Quellcode:
procedure neu;
if Spieler=1 then
begin
BitBtn_eins.visible:=SpielerA.eins;
BitBtn_zwei.visible:=SpielerA.Zwei;
BitBtn_drei.visible:=SpielerA.drei;
BitBtn_vier.visible:=SpielerA.vier;
BitBtn_fuenf.visible:=SpielerA.fuenf;
BitBtn_sechs.visible:=SpielerA.sechs;
BitBtn_d.visible:=SpielerA.d;
BitBtn_v.visible:=SpielerA.v;
BitBtn_fh.visible:=SpielerA.fh;
BitBtn_ks.visible:=SpielerA.ks;
BitBtn_gs.visible:=SpielerA.gs;
BitBtn_k.visible:=SpielerA.k;
BitBtn_c.visible:=SpielerA.c;
end;
if Spieler=2 then
begin
BitBtn_eins.visible:=Spielerb.eins;
BitBtn_zwei.visible:=Spielerb.Zwei;
BitBtn_drei.visible:=Spielerb.drei;
BitBtn_vier.visible:=Spielerb.vier;
BitBtn_fuenf.visible:=Spielerb.fuenf;
BitBtn_sechs.visible:=Spielerb.sechs;
BitBtn_d.visible:=Spielerb.d;
BitBtn_v.visible:=Spielerb.v;
BitBtn_fh.visible:=Spielerb.fh;
BitBtn_ks.visible:=Spielerb.ks;
BitBtn_gs.visible:=Spielerb.gs;
BitBtn_k.visible:=Spielerb.k;
BitBtn_c.visible:=Spielerb.c;
end;