Как обратиться к текущему объекту в Delphi?

Я даю длинные имена объектам (кнопкам, панелям и т. д.) в Delphi, чтобы мой проект оставался аккуратным.

Например, имя кнопки может быть A_Button_That_Saves_Settings_To_Regedit.

В этом случае кодирование с длинным именем раздражает.

Ключевое слово Self относится к форме.

Есть ли в Delphi ключевое слово, которое относится к текущему объекту?

Например:

procedure TForm1.Image1OnClick(Sender: TObject);
begin
  [keyword that refers to "Image1"].Picture.Graphic := [Something];
end;

or

procedure TForm1.Label1OnMouseEnter(Sender: TObject);
begin
  [keyword that refers to "Label1"].Font.Color := RGB(255,255,255);
end;

person Ignacio Ponseti    schedule 28.06.2021    source источник
comment
См. этот предыдущий пост   -  person MyICQ    schedule 28.06.2021
comment
Его нет, так как параметр Sender может также быть nil, а имя процедуры может быть любым - оно не привязано ни к части Label1 или Image1, ни к части OnMouseEnter или OnClick.   -  person AmigoJack    schedule 28.06.2021
comment
@AmigoJack Я думаю, что отправитель как ... ключевое слово работает как шарм.   -  person Ignacio Ponseti    schedule 28.06.2021
comment
Это не ключевое слово, а переменная и оператор. Если Sender будет иметь значение nil, тогда (Sender as TLabel).Font выйдет из строя, так как .Font недоступен для nil.   -  person AmigoJack    schedule 28.06.2021
comment
@AmigoJack Sender у меня работает, потому что я всегда использую Sender следующим образом: Sender: TObject. В любом случае, ваш аргумент, конечно, верен.   -  person Ignacio Ponseti    schedule 28.06.2021
comment
Отправителю нельзя доверять, это может быть что-то совершенно другое   -  person GuidoG    schedule 28.06.2021
comment
вполне возможно, что совершенно другой объект использует тот же самый метод для своего OnClick. В этом случае отправителем может быть любой из этих двух (или даже более) объектов. Чтобы это работало, вам нужно протестировать Sender для всех возможных типов и написать для каждого свой код. Это делает вещи намного более трудными для чтения, чем просто использование его имени. В чем проблема с использованием длинного имени? Я тоже так делаю, вам не нужно их печатать, редактор вам в этом поможет   -  person GuidoG    schedule 28.06.2021
comment
Вызвать завершение кода с помощью Ctrl + Space   -  person Delphi Coder    schedule 28.06.2021