Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TObj


bartov ©   (2002-11-06 17:12:00) 

Пишу компонент наследованный от TObj не могу вызвать свой собработчик.

function WndProcTray(Ctl: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
...
D := PBAPSysTray(Ctl);
if Assigned(D.OnBalloonShow) then D.OnBalloonShow(@D);
...

Как сделать чтоб заработало?


SPeller   (2002-11-08 07:12:00) [1]

Сорри, я тут немного не того сказанул.
Всё заработало, смотри почту.


SPeller   (2002-11-08 06:45:00) [2]

Пока не до конца разобрался, но для начла нашёл, что в оконной процедуре WndProcTray в параметре Ctl передаётся указатель НЕ на твой экземпляр объекта BAPTrayIcon. Если сделать вот такую запись в теле этой процедуры:
PBAPSysTray(Ctl).OnBalloonShow( Ctl );
то программы вылетает с окошком CPU. Если спереди прибавить if Assigned(.. , то ошибка не вылетает, что собственно и ввело тебя в заблуждение ( if Assigned при этом в окошке Evaluate/Modify выдаёт True )


SPeller   (2002-11-07 19:40:00) [3]

Давай мне свой код, посмотрю


bartov   (2002-11-07 18:44:00) [4]

Народ ну помогите.........


bartov   (2002-11-07 12:16:00) [5]

2Gandalf
Пример не работает!


bartov   (2002-11-07 12:16:00) [6]

2Gandalf
Отаслал где имено.


bartov   (2002-11-06 23:14:00) [7]

@Gandalf
Отправил код. Ждемс резултатов...


Vox   (2002-11-06 22:47:00) [8]

Пардон, не заметил


Gandalf   (2002-11-06 21:45:00) [9]


> Кто-нибудь пришлите пожайлуста мне код или напишите в форуме
> чтоб заработало - любой пример от TObj.

Бери MHFontDialog, MHFindReplaceDialog, MHAboutDialog и т.п. c этого сайта. Или пиши на мыло, помогу.


> Надо писать:
> D := PBAPSysTray(Ctl.CustomData);


Не надо, поскольку наследуемся от TObj. Тем более, что PBAPSysTray - не тип данных, а тип компонента (судя по коду).


bartov   (2002-11-06 20:56:00) [10]

У меня на if Assigned(D.OnBalloonShow) выдается ошибка.
Кто-нибудь пришлите пожайлуста мне код или напишите в форуме чтоб заработало - любой пример от TObj.


Vox   (2002-11-06 20:22:00) [11]

Надо писать:
D := PBAPSysTray(Ctl.CustomData);


Наверх

Титульная страница Поиск, карта сайта Написать письмо