Как работать с событиями в delphi без кода в обработчике? Нужно, сделать, чтобы при нажатии кнопки на форме, запускался метод моего класса.
Находил много подобных примеров для C#, а по delphi очень мало информации.

21 Авг 2019 в 07:02
217 +1
0
Ответы
1

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

Пример:

Создайте новый класс, в котором будет определен метод, который вы хотите вызвать при возникновении события:type
TMyClass = class
public
procedure MyMethod;
end;
implementation
procedure TMyClass.MyMethod;
begin
ShowMessage('Метод класса выполнен');
end;

Создайте новую форму и определите на ней кнопку:

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

type
TMyEvent = procedure of object;Добавьте приватное поле класса TMyClass, где будет храниться ссылка на метод, который нужно вызвать:type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
FMyClass: TMyClass;
end;Реализуйте обработчик события, который будет вызывать метод класса:procedure TForm1.Button1Click(Sender: TObject);
begin
if Assigned(FMyClass) then
FMyClass.MyMethod;
end;В конструкторе формы создайте объект вашего класса:constructor TForm1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FMyClass := TMyClass.Create;
end;Добавьте метод SetMyEvent, который будет привязывать метод класса к событию:procedure TForm1.SetMyEvent(AMyEvent: TMyEvent);
begin
if Assigned(AMyEvent) then
FMyClass.MyMethod := AMyEvent;
end;Используйте этот метод для привязки метода вашего класса к событию кнопки:procedure TForm1.FormCreate(Sender: TObject);
begin
SetMyEvent(FMyClass.MyMethod);
end;

Теперь при нажатии на кнопку на форме будет вызываться метод вашего класса.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир