Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как сохранить имя формы и кнопки в Delphi для запуска определенной процедуры

Delphi , Программа и Интерфейс , Формы

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

Проблема

Рассмотрим типичную ситуацию: на форме fLayOut1 расположена кнопка bMod2. При нажатии на кнопку необходимо сохранить имена формы и кнопки для дальнейшего использования.

Решение

Для получения имени текущей формы, к которой принадлежит обработчик события, можно напрямую обратиться к свойству Name объекта. В случае с обработчиком нажатия кнопки, можно использовать параметр Sender, который обычно является ссылкой на объект, вызвавшего событие. Поскольку Sender имеет тип TObject, который не имеет свойства Name, необходимо привести тип Sender к типу, который имеет это свойство. В большинстве случаев, это будет тип самого объекта, вызывающего событие, или, если не уверены, можно использовать общий предок TComponent.

Вот пример кода, который сохраняет имена формы и кнопки:

procedure TFLayout1.bMod2Click(Sender: TObject);
var
  azone: string;
  adept: string;
begin
  azone := Self.Name; // имя текущей формы
  adept := TButton(Sender).Name; // имя кнопки, вызвавшей событие
  // Для демонстрации результата используем ShowMessage
  ShowMessage('Form name: ' + azone + #10 +
    'Sender name: ' + adept);
end;

Альтернативные подходы

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

var
  ParentClass: TWinControl;
begin
  ParentClass := Button1.Parent;
  while not (ParentClass is TForm) do
    ParentClass := ParentClass.Parent;
  ShowMessage(ParentClass.Name); // имя родительского компонента кнопки
end;

Также, если вы не создаете композитный компонент, можно использовать свойство Owner кнопки, которое всегда указывает на форму:

procedure TFLayout1.bMod2Click(Sender: TObject);
var
  btn: TButton;
begin
  btn := TButton(Sender);
  ShowMessage('Form name: ' + btn.Owner.Name + #10 +
    'Sender name: ' + btn.Name);
end;

Заключение

В данной статье мы рассмотрели, как сохранить имена формы и кнопки в Delphi при обработке нажатия на кнопку. Представлены различные подходы, включая приведение типа Sender к типу TButton или TComponent для получения имени, а также использование свойства Owner кнопки для получения имени формы. Эти методы могут быть полезны в различных сценариях разработки под Delphi.

Создано по материалам из источника по ссылке.

Описаны методы сохранения имен формы и кнопки в Delphi для использования в процедурах, связанных с их событиями.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Формы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 20:51:00/0.0031259059906006/0