Робота з 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);