Есть сейчас (код условный):
Нужно:
#pas
procedure Form.OnStart;
begin
Edit.OnEnter := _OnEnter;
end;
procedure _OnEnter;
begin
if (Edit.Text = <random_value>)
begin
if CheckBox.Checked then Beep; // Эта проверка выполняется многократно. Нужно один раз.
// ... некоторые действия, если текст равен <random_value>
end;
GenerateNextRandomValue;
end;
#pas
procedure Form.OnStart;
begin
if CheckBox.Checked then // Проверка выполняется один раз
Edit.OnEnter := _OnEnter1;
else
Edit.OnEnter := _OnEnter2;
end;
procedure _OnEnter1;
begin
if (Edit.Text = <random_value>) then
begin
Beep;
// ... некоторые действия, если текст равен <random_value>
end;
GenerateNextRandomValue;
end;
procedure _OnEnter2;
begin
if (Edit.Text = <random_value>) then
begin
// ... некоторые действия, если текст равен <random_value>
end;
GenerateNextRandomValue;
end;