Вверх ↑
Ответов: 4630
Рейтинг: 749
#1: 2012-09-18 11:31:12 ЛС | профиль | цитата
Ещё я попытаюсь объяснить, что нужно Ex_. Tad'у должно быть понятнее:
Есть сейчас (код условный):

#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;

карма: 26

1
Голосовали:Ex_