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

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

Кто нить знает что это за ошибка? [D5, Win95/98]


Arhangel ©   (2002-10-09 18:54:00) 

Я пишу прогу с использованием LMDTools (в частности LMDButtonBar), так вот, у меня в проге есть такой текст:
.........
l1.Sections[0].Items[z].OnClick:=cl;
.........
procedure Tform1.cl(Sender:Tobject);
begin
shellexecute(handle,nil,pchar((Sender as TLMDButtonBarItem).caption),nil,nil,1);
end;
.........
Программа запускается и все вродебы нормально, но когда происходит в программе нажимают на кнопку и соответственно вызывается процедура procedure Tform1.cl(Sender:Tobject), то на
экране появляется такая ошибка:

"Project Project1.exe raised exception class ElnvalidCast with message "Invalid class typecast".
Process stopped. Use Step or Run to continue."

Если нажать Run, то просто появляется сообщение:"Invalid class typecast".
Может кто скажет в чем дело или что надо сделать.


Arhangel   (2002-10-09 22:20:00) [1]

Sender.classname пишет, что это TLMDButtonBar, блин.
Как бы мне узнать что за кнопка была нажата?
К кнопке можно дойти таким путем l1.Sections[0].Items[0], но все дело в том что как раз мне и надо знать номер кнопки, которая была нажата.
L1-TLMDButtonBar
l1.Sections[0]-TLMDButtonBarsection
l1.Sections[0].Items[0]-TLMDButtonBarItem
Будем думать;)


Arhangel   (2002-10-09 22:10:00) [2]

Объявлена так:
private
{ Private declarations }
procedure cl(Sender:TObject);


Mike Kouzmine   (2002-10-09 19:16:00) [3]

Как объявлена процедура cl? Если правильно, то как сказал BB 2024.


Darlock   (2002-10-09 19:13:00) [4]

(Sender as TLMDButtonBarItem) - есть приобразование типов.
И Sender в данном случае не является ни TLMDButtonBarItem ни его потомком...


Best Before 2024   (2002-10-09 19:07:00) [5]

Узнай Sender.ClassName а потом уже думай


Mike Kouzmine   (2002-10-09 19:06:00) [6]

А ты в хелпе посмотри, как надо объявлять эти процедуры.


Наверх

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