ボタンを押したときに判断するには?


message  2007-02-07 13:26:31  No: 24817  IP: 192.*.*.*

ランダムで選ばれた2つの整数a,b、この2つを足した数goukei。
SpeedButtonクリックでeditに答えを入れ、goukeiとイコールかどうかを判断しようとしてます。
goukei<10のときは、

if goukei<10 then begin
      if Inttostr(goukei)=tenkeynumber then  {tenkeynumber・・・Speedbuttonでクリックした値}
        seikai:=seikai+1          //正解数+1
      else
        Fuseikai:=Fuseikai+1;     //不正解数+1

としたのですが、10を超えた場合はどう判断したらよいのか困惑しています。どなたかお教え願いないでしょうか。

編集 削除
HOta  2007-02-07 15:29:56  No: 24818  IP: 192.*.*.*

>if goukei<10 then begin
>      if Inttostr(goukei)=tenkeynumber then  {tenkeynumber・・・Speedbuttonでクリックした値}
>        seikai:=seikai+1          //正解数+1
>      else
>        Fuseikai:=Fuseikai+1;     //不正解数+1
end else
  if goukei>10 then begin         //10を超える

編集 削除
message  2007-02-07 16:17:50  No: 24819  IP: 192.*.*.*

そうなんです。そうなんですけど、(すいません。私の説明が足りなさ過ぎました。)
Speedbuttonは0..9で、goukeiが9以下であれば、Speedbuttonをどれか1回押したらイコールかどうか判断しますよね。
goukeiが10以上であれば、Speedbuttonを最低でも2回押しますよね。そのときに、1回目を押したら
end
else if goukei>10 then begin
  if Inttostr(goukei)=tenkeynumber then  {tenkeynumber・・・Speedbuttonでクリックした値}
     seikai:=seikai+1          //正解数+1
  else
     Fuseikai:=Fuseikai+1;     //不正解数+1

ここを通って、2回目を押す前に不正解として判断されてしまうわけです。
(例えばgoukei=50のとき、1回目に”5”と押したらそのまま判断されてしまって不正解となる)ので、どういう方法をとれば2桁入力したあとに判断してもらえるのかということをお教え願いたかったのです。
Hotaさんせっかく答えてもらったのにすいません。

編集 削除
HOta  2007-02-07 17:39:41  No: 24820  IP: 192.*.*.*

そのままですね。
答えが1桁の場合は、一回目で判断して、2桁目の場合は、2回目で判断するしかないでしょう。
電卓プログラムなどのサンプルが、よくありますよ。

編集 削除
ズバリ  2007-02-07 17:50:40  No: 24821  IP: 192.*.*.*

・「正解かどうか判定する」ボタンを作って、それを押したら判定する
・goukeiを0〜9の整数に制限する
・goukeiの桁数に合わせてSpeedbuttonの入力回数を変える(例えばgoukei=50のときはSpeedbuttonを2回押すまで判定しない)

電卓みたいにスピードボタンが配列されていて、ランダムな数を何の情報も与えられない情況で当てるわけですよね?
ものすごい鬼仕様なゲームですな。

編集 削除
ffffff  2007-04-12 10:48:57  No: 24822  IP: 192.*.*.*

1.判断を実行するボタンを作る。
    (これはいわんでもわかるね?)

2.タイマを使う。
    (タイマのインターバルは適当に設定する。1秒すると、最後にボタンが押されてから1秒後に判断処理に行くので、一秒以内に押せば連続入力が可能)

ボタンのクリックイベントにて
    Timer1.Enabled := False;
    Edit1.Text := ランダムで選ばれた数値;
    Timer1.Enabled := True;

タイマのタイマイベントにて
    Timer1.Enabled := False;
    判断処理;

編集 削除