Moinsen Männers
und zwar habe ich das Problem, dass ich derzeit eine Art Kniffel mit Checkboxen erstelle. Jetzt ist das Ding, dass diese Checkbox nur Disabled und Gecheckt sein sollen, wenn das Labelfeld einen Wert zugewiesen bekommen hat. Das heißt, dass wenn nicht gewürfelt wurde, soll eine MessageBox auftauchen. Das tut es auch, aber zweimal, da sich durch das ( Sender as TCheckBox ).Checked := false; das OnClick doppelt auslöst. Wie kann ich nun den Code umschreiben, dass er es nicht mehr tut?
Code:
function TKnuffel.wurdeGewuerfelt : boolean;
begin
if wuerfel1BBtn.Caption = '0' then
begin
result := false;
Application.MessageBox('Bitte würfeln Sie erst!', 'Hinweis', mb_OK);
end
else
result := true;
end;
Code:
if ( Sender = player1CB3Pasch ) then
if wurdeGewuerfelt = false then begin
( Sender as TCheckBox ).Enabled := true;
( Sender as TCheckBox ).Checked := false;
end
else if wurdeGewuerfelt = true then
if dreierPasch = true then begin
wert1Label3Pasch.Caption := IntToStr( alleWuerfelErgebnis );
ergebnisUnten1();
( Sender as TCheckBox ).Enabled := false;
wuerfelReset();
if niSpielerAnz = 2 then begin
spielerWechsel( Sender as TObject );
wuerfelReset();
end;
end
else if dreierPasch = false then
begin
MessageBox(0, 'Es ist kein Dreier Pasch vorhanden. Bitte wählen Sie etwas anderes!', 'Hinweis', MB_OK);
( Sender as TCheckBox ).Checked := false;
end;