На прошлом уроке мы добавили две кнопки: одна меняет свой текст при нажатии, другая закрывает текущее окно. В этом разделе мы добавим немного более сложную логику для первой кнопки. При каждом нажатии текст кнопки переключается туда-сюда. Основная цель — изучить синтаксис Pascal.
Откройте проект, созданный ранее
Вы можете напрямую отредактировать функцию обработки клика в файле pas или перейти к функции события первой кнопки по инструкции ниже.

Замените код функции события на следующий фрагмент
procedure TForm1.Button1Click(Sender: TObject);
{ Использовать свойство Tag кнопки для хранения состояния и переключения текста }
begin
// Проверка значения Tag: 0 = состояние по умолчанию, 1 = переключенное состояние
if Button1.Tag = 0 then
begin
Button1.Caption := 'Press again'; // Изменить отображаемый текст кнопки
Button1.Tag := 1; // Пометить состояние как 1
end
else
begin
Button1.Caption := 'Press'; // Вернуть исходный текст
Button1.Tag := 0; // Сбросить маркер в 0
end;
end;Code language: JavaScript (javascript)
Шаги для перехода к событию кнопки
Откройте сохраненный проект Lazarus, переключитесь на режим дизайна Form1 и кликните по кнопке с надписью Press (Button1) на форме.
При выбранном элементе перейдите на вкладку Events (События) в правом инспекторе объектов (Object Inspector).
Найдите строку события OnClick, кликните по полю ввода справа от него, затем нажмите кнопку многоточия ... в конце — редактор автоматически перейдёт к соответствующей функции в коде.
Удалите весь старый код, вставьте полный код ниже, сохраните проект, скомпилируйте и запустите программу. При нажатии на кнопку текст будет постоянно переключаться.
- Свойство Tag: встроенное целочисленное свойство всех элементов окна для хранения пользовательских цифровых маркеров. Здесь используются только два состояния: 0 и 1.
- Первое нажатие: Tag=0 → текст меняется на
Press again, Tag присваивается значение 1 - Второе нажатие: Tag=1 → текст возвращается к
Press, Tag сбрасывается в 0 - Повторные нажатия циклически переключают текст, создавая эффект переключателя.
Приведённый код использует свойство Tag кнопки для запоминания её состояния и реализует переключение текста.
Демонстрация работы
Переключение текста кнопки по клику