Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 18:20   #1
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию Узнать индекс компонента в событие

Всем привет, столкнулся с такой проблемой.Создаю массив из 100 компонентов, дальше присваиваю им событие.В событии надо узнать индекс компонента, но проблема в том что, в событие Sender:TObject не передается.Как узнать индекс компонента?

Вот так я создаю:

Код:
 for i:=0 to 100 do
     begin
          Flash[i]:=TFlash.Create(NIL);
          Flash[i].Tag:=i;
          Flash[i].OnStart:=Flash1OnStart;
     end;
Обработчик события:


Код:
procedure TForm1.Flash1OnStart(Result: Boolean);
begin
ЗДЕСЬ НАДО УЗНАТЬ ИНДЕКС КОМПОНЕНТА ОТ КОТОРОГО ПРИШЛО СОБЫТИЕ
end;
larin1974 вне форума Ответить с цитированием
Старый 12.12.2009, 18:40   #2
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Код:
index:=TFlash(sender).Tag
Gerzs вне форума Ответить с цитированием
Старый 12.12.2009, 18:43   #3
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию

Еще раз повторяю Sender не передается в событие:-(
larin1974 вне форума Ответить с цитированием
Старый 12.12.2009, 19:08   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

давайте полные данные описания события - TForm1.Flash1OnStart() как если-бы вы статически его ввели... отсюда не видно, что такое Flash ? эт че за компонента? телеграфируйте текстом тут
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.12.2009, 19:59   #5
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию

ну компонент мне знакомый когда-то написал(но он уехал).
Описывается событие в компоненте
Код:
type
  TOnStart = procedure (Result: boolean) of object;
Вы это хотели узнать, или я ошибся?
А компонент, это тут для сетевого чата, при конекте выдается событие TOnStart.Если бы событие Sender передовалось, то я бы без труда нашел бы индекс

Последний раз редактировалось larin1974; 12.12.2009 в 20:02.
larin1974 вне форума Ответить с цитированием
Старый 13.12.2009, 13:59   #6
larin1974
Пользователь
 
Регистрация: 11.09.2009
Сообщений: 34
По умолчанию

все разобрался)
Нужно было добавить:
Код:
TOnStart = procedure (sender:TObject;Result: boolean) of object;
и где идет вызов, я сделал как ты и сказал:

Код:
OnStar(Self, Result);
т.е. передал ссылку на компонент.
larin1974 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Индекс не срабатывает GenniY БД в Delphi 4 24.11.2009 15:05
Как перехватить событие родительского компонента? postal2 Компоненты Delphi 3 28.08.2009 12:31
Заменить стандартное событие компонента при создании своего. postal2 Компоненты Delphi 6 28.08.2009 11:01
Как узнать HANDLE компонента который находится под курсором мыши SeRhy Общие вопросы Delphi 7 04.02.2009 20:39