Советы по Delphi

         

Обработка щелчка нескольких кнопок, используя их заголовок


...с ваших слов я понял, что вы все уже реализовали, но давайте все повторим: вы должны убедиться в том, что событие OnClick привязано к каждой кнопке калькулятора (числовые кнопки 0..9) и указывают на общий обработчик события.

В разделяемом обработчике события получите заголовок обрабатываемой кнопки следующим образом:

    Edit1.Text := TButton(Sender).Caption;

...я думаю в этом случае самым разумным будет использование свойства Tag каждой кнопки:

  1. назначьте уникальный Tag для каждой кнопки (например, эквивалент арабским цифрам)
  2.    

    procedure TForm1.Button1Click(Sender: TObject);
    begin if (Sender is TButton) then with (Sender as TButton) do {используем Tag} end;

Если вам нужен только заголовок, то есть изящный способ получить к нему доступ. Подключите общий обработчик события для всех кнопок и используйте приведение типа как показано ниже:

    procedure TForm1.Edit1Click(Sender: TObject);
begin
edit1.text := (sender as TButton).caption ; end;

Приведенная ниже конструкция будет недостаточной:

    sender.caption

поскольку компилятор не знает о том, имеет ли "sender" свойство caption, или нет. [001523]



Содержание раздела