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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 10:30   #1
boget
Пользователь
 
Аватар для boget
 
Регистрация: 06.05.2010
Сообщений: 10
По умолчанию Создание нескольких объектов с одинаковыми обработчиками

Подскажите пожалуйста, вот у меня есть объект класса TLabel, его использую как ссылку (при наведении и отводе курсора мыши меняет цвет) у него есть обработчики событий:

Код:
procedure TForm2.Label4Click(Sender: TObject);
begin
  ShellExecute(handle,'open','http://ya.ru',nil,nil,SW_SHOW);
end;

procedure TForm2.Label4MouseLeave(Sender: TObject);
begin
  label4.Font.Color := clHighlight;
end;

procedure TForm2.Label4MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  label4.Font.Color := $b60e00;
end;
Хочу добавить еще 40 объектов на форму класса TLabel с такими же обработчиками. Можно как-то присвоить имеющиеся обработчики другим объектам, меняя при этом только ссылку в процедуре TForm2.Label4Click?
boget вне форума Ответить с цитированием
Старый 28.10.2010, 10:47   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

в свойствах объекта выставите ссылку и все.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 28.10.2010, 10:48   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
procedure TForm2.Label4Click(Sender: TObject);
begin
   ShellExecute(handle,'open',PChar((Sender as TLabel).Caption),nil,nil,SW_SHOW);
end;
Подключи ко всем Label-ам
_SERGEYX_ вне форума Ответить с цитированием
Старый 28.10.2010, 11:41   #4
boget
Пользователь
 
Аватар для boget
 
Регистрация: 06.05.2010
Сообщений: 10
По умолчанию

Спасибо за подсказки! Все сделал, только вместо Caption задал hint, поскольку Caption отличается от ссылки (там русское слово), еще погуглил на тему Sender as Tlabel. Поставил в events эти процедуры разным Label'ам, указал у них hint, вот что получилось в итоге:

Код:
procedure TForm2.LabelClick(Sender: TObject);
begin
  ShellExecute(handle,'open',PChar((Sender as TLabel).hint),nil,nil,SW_SHOW);
end;

procedure TForm2.LabelMouseLeave(Sender: TObject);
begin
  (Sender as TLabel).Font.Color := clHighlight;
end;

procedure TForm2.LabelMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  (Sender as TLabel).Font.Color := $b60e00;
end;
boget вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание объектов Костян Пират Общие вопросы Delphi 12 24.05.2011 18:39
Общий обработчик для нескольких объектов Strombald Помощь студентам 10 23.12.2009 22:57
Одна функция для нескольких объектов Salomon Помощь студентам 2 25.11.2008 16:32
Создание/уничтожение объектов nimf Общие вопросы Delphi 10 14.04.2008 10:54
Создание новых объектов Washington Общие вопросы Delphi 1 10.03.2007 21:57