Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 18:40 28.09.24 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: Sender [re: нoвoбpaнeц]
Автор PhantomAS (стар ерген®)
Публикувано24.02.02 10:54  



Преди да говорим конкретно за параметъра бих те посъветвал да проу4иш така наре4ената класова иерархия в Делфи - и ще забележиш 4е вси4ки класове запо4ват от TObject - защо ли???? ;-)))

Каква е идеята конкретно за твоя въпрос - когато имаме обработка на събитие - като параметър (по4ти при вси4ки слу4аи ) се предава и обекта викащ събитието - той се намира именно в този параметър - само 4е ако искаш да разботиш с него ще трябва да го сведеш до "истинския" му тип - ако искаш да ползваш нещо конкретно от обекта пращаш генериращ съобщението

Например - просто свържи един бутон с неговия OnClick метод- появява се

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

Ако искаш да направиш нещо конкретно свързано с "изпраща4а" на това събитие - примерно да промениш неговия Caption - просто добави следното

(Sender as TButton) .Caption := 'ABC';

Оба4е трябва да си сигурен в така наре4ения cast - опертор - в слу4ая разглеждаме Sender като тип бутон. За да си сигурен 4е вси4ко е коректно (ако примерно Button1Click(...) можеш да дадеш не само на метода OnClick на бутона, ами и на вси4ки On.... събития от типа TNotifyEvent - (това е най простото събитие )
Примерно можеш освен с OnClick на бутона - да асоциираш ве4е готовата обраобтка едновременно и с OnClick на меню - в този слу4ай оба4е когато извикаш събитието от меню - параметъра Sender ще бъде от друг тип.

ето ти един пример как да проверяваш то4но какъв тип е параметъра (не само за Sender се отнася - а за вси4ки обекти предавани като параметри )

if (Sender is TButton) then
(Sender as TButton) .Caption := 'ABC';

ако имаш меню - можеш да направиш проверка по следния на4ин
if (Sender is TMenuItem) ....

Като цяло трябва да обърне пове4е внимание на класовете в делфи - те са основата на програмирането - VCL библиотеката е доста голяма - но можеш да извадиш на първо време най- важните - тези на контролите и формите с които работиш за да можеш по лесно да се ориентираш

---
Е т'ва е живот!



Цялата тема
ТемаАвторПубликувано
* Sender нoвoбpaнeц   24.02.02 09:32
. * Re: Sender PhantomAS   24.02.02 10:54
. * Re: Sender нoвoбpaнeц   24.02.02 11:11
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.