Показать сообщение отдельно
  #2  
Старый 14.08.2012, 12:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Alexs55
Всем доброго здравия.
Нужна красивая идея.
На форме находится CheckBox. В обработчике события CheckBoxKeyPress меняю свойство Checked кнопкой Enter. Но у меня CheckBox'ов больше десятка..... Ни писать же на каждый CheckBox свой обработчик события.
А что делать?
Пишешь один обработчик и присваиваешь его (например в инспекторе объектов) всем остальным. Например:
Код:
procedure TPrimeFrm.CheckBox1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    '1': (Sender as TCheckBox).Checked:=True;
    '2': (Sender as TCheckBox).Checked:=False;
  end;
end;

Если же нужно всем CheckBox-ам на форме присвоить один и тот же обработчик, то можно программно. Пример:
Код:
var
  i: Integer;
begin
  for i := 0 to ComponentCount-1 do
  begin
    if Components[i] is TCheckBox then
    begin
      (Components[i] as TCheckBox).OnKeyPress:=CheckBox1KeyPress;
    end;
  end;
end;
Ответить с цитированием