TButton/ru
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
日本語 (ja) │
русский (ru) │
TButton является компонентом, представляющим собой базовый элемент управления в виде кнопки. Данный компонент доступен на вкладке Standard палитры компонентов.
Компонент TButton является одним из самых основных элементов управления, располагаемых на форме. Щелкая мышью по кнопке (или выбирая её с помощью клавиши [Tab] и нажимая клавишу [Enter]) происходит срабатывание действия. Этот щелчок называется событием. Для его обработки вам необходим обработчик события.
Вы можете добавить кнопку на форму, щелкнув на элемент TButton (прямоугольная кнопка с надписью "OK" по середине), расположенный на вкладке Standard палитры компонентов, и пометив его на форму с помощью щелчка мыши.
Обработчик события щелчка мыши можно легко создать с помощью двойного щелчка по расположенной на форме кнопки (или выбрать событие OnClick для данной кнопки в Инспекторе Объектов). Обработчик события для кнопки с именем Button1, расположенной на форме с именем Form1, будет выглядеть так:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Вы можете поместить ваш код между операторами begin и end, который будет вызываться при нажатии кнопки Button1.
Практически все доступные руководства для начинающих используют компонент TButton в качестве введения в Объектно-ориентированное программирование в среде Lazarus. Следующие руководства хорошо подходят для новичков, чтобы понять как использовать кнопки:
- Первое графическое приложение для новичков
- Ваша первая программа на Lazarus руководство по Lazarus
- Пример объектно-ориентированного программирования на Free Pascal и Lazarus
Простой пример
- Создайте новое приложение и разместите элемент управления TButton на форме.
- Дважды щелкните по кнопке с именем Button1, расположенной на форме (по умолчанию создастся обработчик события OnClick для кнопки с именем Button1 и откроется редактор кода).
- Добавьте следующий код в обработчик события:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Lazarus makes my day'); //Будет отображено сообщение с текстом...
end;
- Запустите программу (нажав клавишу <F9>).
Щелчок правой кнопкой мыши
Каждый элемент управления TButton имеет необязательное свойство PopupMenu, через которое можно связать элемент управления TPopupMenu с кнопкой, в результате чего всякий раз, когда вы щелкните правой кнопкой мыши по кнопке будет отображаться всплывающее меню.
Динамически создаваемая кнопка
Иногда, вместо создания кнопок (или других компонентов) в режиме разработки в Lazarus с помощью дизайнера форм легче создавать их динамически в режиме выполнения программы. Данный подход особенно полезен, если у вас есть часто повторяющиеся кнопки на форме.
Этого можно достичь, как показано в следующем примере (простой калькулятор):
- Создайте новое пустое графическое приложение с формой Form1 и добавьте StdCtrls в раздел Uses.
- Измените заголовок формы с Form1 на QuickAdd.
- Создайте для формы Form1 обработчик события OnCreate (перейдите в Инспектор Объектов и в событии OnCreate щелкните кнопку [...]).
- Добавьте следующий код:
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
aButton: TButton;
begin
for i:=0 to 9 do begin //создаем 10 кнопок
aButton:=TButton.Create(Self); //создаем кнопки в родительском элементе Form1
aButton.Parent:=Self; //определяем, где они будут отображаться
aButton.Width:=aButton.Height; //ширина каждой кнопки должна соответствовать её высоте
aButton.Left:=i*aButton.Width; //расстояние слева
aButton.Caption:=IntToStr(i); //заголовки кнопок (0..9)
aButton.OnClick:=@aButtonClick; //обработчик события для кнопок -> будет ещё создан
end;
Self.Height:=aButton.Height; //высота формы должна соответствовать высоте кнопок
Self.Width:=aButton.Width*10; //ширина формы для соответствия ширины всех кнопок
end;
- Теперь вы должны создать обработчик события для щелчков мыши.
- Добавьте класс TForm1 в секцию
private
в редакторе кода. - Добавьте
procedure aButtonClick(Sender: TObject);
и нажмите клавиши [CTRL] + [Shift] + [c] (опция завершения кода станет активной и создастся процедураTForm1.aButtonClick(Sender: TObject);
. - Вставьте следующий код:
procedure TForm1.aButtonClick(Sender: TObject);
const
Cnt: Integer = 0;
var
i: Integer;
begin
if (Sender is TButton) and //вызывается ли обработчик события кнопки?
TryStrToInt(TButton(Sender).Caption, i) //попытка преобразования текста в число
then begin
Cnt:=Cnt + i; //увеличение значения счетчика
Caption:='QuickAdd: '+IntToStr(Cnt); //вывод результата в заголовок формы
end;
end;
- Запустите приложение.
procedure <class>.<name of procedure>(Sender: TObject);
has. Thus, you can use one from another class!См. также