Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.19;
Скачать: CL | DM;

Вниз

Проблема с параметром Sender   Найти похожие ветки 

 
Magic ©   (2002-09-04 10:23) [0]

Помогите. Никак не пойму в чем дело. В обработчике события нажатия кнопки, описанного в ActionList, я пишу следующее:

Eq: array [1..3] of TEdit;
...
with Sender as TSpeedButton do
Eq[Tag].Text:="";
...
Так вот, компилятор говорит, что я неправильно присваиваю тип ("InvalidCast"). Задействовано 3 SpeedButton"а и каждому присвоен номер от 1 до 3. Кажется, пишу все правильно, а он говорит - ошибка:( Не знаю, что делать?


 
Ученик ©   (2002-09-04 10:31) [1]

if (Sender is TAction) and (TAction(Sender).ActionComponent is TSpeedButton) then
with TAction(Sender).ActionComponent do


 
Виктор Щербаков ©   (2002-09-04 10:33) [2]


> Так вот, компилятор говорит,

Компилятор всё же молчит в таких ситуациях. Дело-то происходит в runtime, не так ли?


 
Magic ©   (2002-09-06 13:25) [3]

Да, да, правильно. Но не объясните ли вы мне подробнее: почему? Пожалуйста. А лучше: почему именно так:
if (Sender is TAction) and (TAction(Sender).ActionComponent is TSpeedButton) then
with TAction(Sender).ActionComponent do


 
Ученик ©   (2002-09-06 13:28) [4]

{ Controls.pas }
procedure TControl.Click;
begin
{ Call OnClick if assigned and not equal to associated action"s OnExecute.
If associated action"s OnExecute assigned then call it, otherwise, call
OnClick. }
if Assigned(FOnClick) and (Action <> nil) and (@FOnClick <> @Action.OnExecute) then
FOnClick(Self)
else if not (csDesigning in ComponentState) and (ActionLink <> nil) then
ActionLink.Execute(Self)
else if Assigned(FOnClick) then
FOnClick(Self);
end;


 
Magic ©   (2002-09-06 13:40) [5]

Не понимаю, к чему мне то, что ты мне написал? Мне нужно просто понять, как работает событие, описанное в ActionList. Из всего написанного я понял, что это событие вызывается с параметром Sender = Self. Так?


 
MBo ©   (2002-09-06 13:43) [6]

Sender - Action.
В Delphi 5 у Action нет свойства ActionComponent, так что так просто не узнать, кто инициировал Action


 
Ученик ©   (2002-09-06 14:01) [7]

>Magic © (06.09.02 13:40)
Это объяснение, что происходит при нажатии на кнопку, но, к сожалению, для Delphi 6 (7)



Страницы: 1 вся ветка

Текущий архив: 2002.09.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
3-60990
Игорь С.
2002-08-29 11:20
2002.09.19
расширения MS SQL 7.0


1-61063
KPY
2002-09-09 15:38
2002.09.19
Как динамически изменить цвет series в сhart-е?


3-60970
Коля
2002-08-29 05:11
2002.09.19
Order by


3-61021
pvasya
2002-08-19 16:56
2002.09.19
как привязать DBLookupComboBox к DBGrid?


3-60927
RDA
2002-08-24 19:27
2002.09.19
Отчеты хранимые в базе данных