TButton/ru
Deutsch · English · Español · Français · Suomi · Русский · 日本語
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;- Запустите приложение.
Note: You can assign every imaginable event handlers to your buttons, as long as this the form
procedure <class>.<name of procedure>(Sender: TObject);has. Thus, you can use one from another class!
См. также
From the Free Pascal wiki, page "TButton/ru", as it stood on 2020-02-29 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
