![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто нить знает что это за ошибка? [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]А ты в хелпе посмотри, как надо объявлять эти процедуры.