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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2009, 17:53   #1
Strombald
 
Регистрация: 20.12.2009
Сообщений: 6
Вопрос Общий обработчик для нескольких объектов

Добрый день/вечер/ночь, форумчане. Хотел бы попросить совета или помощи в реализации одной штуки. Пишу в Дельфи 7, у меня на форме имеется 25 объектов типа TImage и необходимо при наведении мышки выводить hint объекта, попавшего под курсор в Memo, и каждый раз при наведении курсора на Image менять содержимое этого самого Memo. По значению свойства Tag объекта Image отбирать номер массива. Не уверен что я вообще поступил сильно кошерно, когда решил так все делать, но с контейнерными классами у меня криво, никак не осилю их нормально освоить Собственно вопрос, как это сделать, кроме как писать 25 обработчиков?

Последний раз редактировалось Strombald; 20.12.2009 в 18:00.
Strombald вне форума Ответить с цитированием
Старый 21.12.2009, 15:22   #2
Strombald
 
Регистрация: 20.12.2009
Сообщений: 6
По умолчанию

Up, вопрос еще в силе
Strombald вне форума Ответить с цитированием
Старый 22.12.2009, 20:40   #3
Strombald
 
Регистрация: 20.12.2009
Сообщений: 6
По умолчанию

Up Рыжий Up
Strombald вне форума Ответить с цитированием
Старый 22.12.2009, 21:25   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Код:
procedure TForm1.seti(Sender: TObject);
begin
 memo1.Lines[0]:= Application.Hint
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 application.OnHint:= seti
end;
смысл ясен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.12.2009, 21:29   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
procedure TForm1.Hint(Sender: TObject);
begin
  Memo1.Text := GetLongHint(Application.Hint);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnHint := Hint;
end;
Опоздал
eoln вне форума Ответить с цитированием
Старый 22.12.2009, 21:29   #6
Strombald
 
Регистрация: 20.12.2009
Сообщений: 6
По умолчанию

Работает, спасибо (: А вот как на счет отбора свойства Tag с элементов по наведению? Или лучше это дело как-то по-другому сделать?

Последний раз редактировалось Strombald; 22.12.2009 в 21:35.
Strombald вне форума Ответить с цитированием
Старый 23.12.2009, 00:47   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

у тоже место...
Код:
 with (sender as timage) do begin
  //tag // или выше case tag of end
 end
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.12.2009, 16:29   #8
Strombald
 
Регистрация: 20.12.2009
Сообщений: 6
По умолчанию

Не работает(
Код:
If Sender.ClassType=TImage then
with (Sender as TImage) do begin
 if SArray[Tag]<>0 then SLabel.Caption:='Bla-bla-1'
 else SLabel.Caption:='Bla-bla-2';
end;
Собственно при наведении курсора на объект ничего не происходит

Последний раз редактировалось Strombald; 23.12.2009 в 19:36.
Strombald вне форума Ответить с цитированием
Старый 23.12.2009, 21:20   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Код:
procedure TForm1.seti(Sender: TObject);
begin
 memo1.Lines[0]:= Application.Hint;
 //
 with (Sender as TImage) do begin // этим мы уже отсекаем лишнее кроме timage
  memo1.Lines[1]:= format('%d', [tag]);
  if SArray[Tag]<>0 then SLabel.Caption:= 'Bla-bla-1'
   else SLabel.Caption:= 'Bla-bla-2'
 end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 application.OnHint:= seti
end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.12.2009, 22:32   #10
Strombald
 
Регистрация: 20.12.2009
Сообщений: 6
По умолчанию

Хм, А зачем задавать вторую строку в мемо этой функцией? В прочем ладно, и на том спасибо, это уж сам как-нибудь обмозгую (:
Strombald вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумировать данные из нескольких файлов excel в 1 общий Miishka Microsoft Office Excel 8 12.11.2009 07:49
Как создать обработчик событий для динамически созданного объекта Лукманов Александр Общие вопросы Delphi 1 22.03.2009 22:05
Дан файл, содержащий информацию о багаже нескольких пасажиров (кол-во вещей и их общий вес) MariyaVo Паскаль, Turbo Pascal, PascalABC.NET 4 08.12.2008 23:10
Одна функция для нескольких объектов Salomon Помощь студентам 2 25.11.2008 16:32
Свой обработчик ошибок для TImage Aslan Мультимедиа в Delphi 8 29.11.2007 11:54