Робота з sender в обробниках компонентів

Параметр Sender в Delphi-програмі є в кожному обработчике подій будь-якого компонента. Однак, оскільки в використанні параметра Sender часто немає необхідності, новачки про нього "забувають" і часто навіть не здогадуються про його призначення. У цій статті я хочу розповісти про те, для чого призначений параметр Sender Delphi і як працювати з таким, як виявляється, важливим і зручним параметром як Sender.

Sender має тип TObject, і має значення об'єкта - джерела події, в обробнику якого він використовується. Тобто, якщо на Формі знаходиться кілька однакових компонентів, до того ж виконують однакові функції, то немає необхідності для кожного з них створювати свої процедури-обробники подій. Цілком достатньо одного комплекту оброблювачів, а з'ясувати, до якого компоненту відноситься подія обробляється саме зараз, дозволить саме параметр Sender.

Caption: = 'Клацання по кнопці №1'

else Caption: = 'Клацання по кнопці №2';

Програма покаже, за якою саме кнопці був клацання. Ну а знаючи це, можна передбачити подальшу реакцію програми.

Це ще не все! Працюючи з параметром Sender. можна обійтися навіть і без з'ясування імені компонента-джерела. Наприклад, завдання таке: ми повинні стежити за властивістю Text декількох компонентів Edit і при появі в будь-якому з них символу ',' (кома) міняти його на '.' (крапка). Створіть такий обробник події OnChange для одного з Edit'ов, а іншим просто зіставте, як в попередньому випадку:

procedure TForm1.Edit1Change (Sender: TObject);