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

Вниз

Обращение к динамическим компонентам   Найти похожие ветки 

 
.ruslan ©   (2006-11-30 13:45) [0]

Доброго дня всем вам!
У меня возник вопрос, с которым мне пришлось обратится за помощью к вам.

Нужно сделать чтобы компоненты Panel создавались динамически, но это не важно, с этим я разберусь, мне нужно сделать так, чтобы при наведении на каждую она меняла цвет, а при потери уходжи мышки за её пределы – возвращался исходный цвет этой панели. Но вот в чём задача, мне нужно сделать так, чтобы у панелий была эта функция одинаковая и не индивидуальная, а например panel[x].color и т.д. т.к. я уже говорил панелей будет много.

Если не затруднит пишите в ICQ для более быстрого решения вопроса.
Спасибо за внимание к моему вопросу. Если вопрос обсуждался – извиняйте, просто дайте ссылку на тему. Спасибо! Всем доброго дня!


 
Desdechado ©   (2006-11-30 13:49) [1]

1. создаешь массив панелей
2. делаешь один обработчик на всех и присваиваешь всем

ЗЫ в асе решают личные вопросы, а не производственные


 
Юрий Зотов ©   (2006-11-30 13:53) [2]

Дополнение

1. Если массив для работы не нужен, его можно не создавать.
2. В этом общем обработчике Sender - это та панель, которую нужно перекрасить.


 
Krants   (2006-11-30 13:53) [3]

только сперва надели их событиями OnMouseEnter, OnMouseLeave...


 
Юрий Зотов ©   (2006-11-30 13:55) [4]

> Krants   (30.11.06 13:53) [3]

1. Сперва ЧЕГО?
2. Их - это КОГО?


 
Krants   (2006-11-30 14:12) [5]


> Юрий Зотов ©   (30.11.06 13:55) [4]


1. Наделить СОБЫТИЯМИ!
2. дин. ПАНЕЛИ!


 
Юрий Зотов ©   (2006-11-30 14:15) [6]

Зачем панели наделять событиями, которые у них уже и так есть?


 
.ruslan ©   (2006-11-30 14:18) [7]


> Юрий Зотов ©   (30.11.06 14:15) [6]

т.е. ?


 
Krants   (2006-11-30 14:18) [8]

у панелей нет таких событий (наведения и ухода курсора мыши).


 
.ruslan ©   (2006-11-30 14:21) [9]


> Krants   (30.11.06 14:18) [8]

onmousemove вроде как при наведении, а при ухода курсора - вроде нет


 
novill ©   (2006-11-30 14:28) [10]

> [0] .ruslan ©   (30.11.06 13:45)


Вот тебе интерфейсная часть

 type TMyPanel=class(TPanel)
 private
  _newcolor:TColor;
  _oldcolor:TColor;
 public
   procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
   procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
  constructor Create(AOwner: TComponent; newcolor:TColor);
 end;


Если дальше сам не напишешь, придется читать...


 
Юрий Зотов ©   (2006-11-30 14:29) [11]

> Krants   (30.11.06 14:18) [8]

У панелей есть обработка сообщений CM_MOUSEENTER и CM_MOUSELEAVE. Заключается она в том, что эти сообщения пересылаются паренту - то есть, форме. Значит, написав обработчики этих сообщений в САМОЙ форме, получим то, что нужно.


 
.ruslan ©   (2006-11-30 14:31) [12]


> novill ©   (30.11.06 14:28) [10]

Спасибо, но для меня сложновато, хотя сама задача вроде как не для профи. Сам не разберусь, мне бы подробнее... Извините если отвлекаю..


 
novill ©   (2006-11-30 15:02) [13]

Писать не буду. Там слишком все просто.
Вам нужно просто написть реализацию этих трех методов.
подсказываю:
в процедурах по одной строчке (присваивания)
в конструкторе - три строчки: первая inherited Create(AOwner);  и два присваивания.

Всё.

Не напишите - идите в наборщики текста.


 
.ruslan ©   (2006-11-30 15:15) [14]


> novill ©   (30.11.06 15:02) [13]

спасибо! тему можно закрывать


 
novill ©   (2006-11-30 15:21) [15]

> [14] .ruslan ©   (30.11.06 15:15)

покажи хоть что написал :)


 
.ruslan ©   (2006-11-30 15:33) [16]

ничего, вот узнаю у вас как и что ;)



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

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

Наверх




Память: 0.5 MB
Время: 0.046 c
15-1164737905
vain
2006-11-28 21:18
2006.12.17
Пожалуй, самая прикольная шутка.


2-1164896435
Defort
2006-11-30 17:20
2006.12.17
Переполнение стека


2-1164148382
Евгений Р.
2006-11-22 01:33
2006.12.17
Копирование на FTP


2-1165001960
Defort
2006-12-01 22:39
2006.12.17
Компиляция


15-1164036886
oldman
2006-11-20 18:34
2006.12.17
Кажись, Россия вошла таки в ВТО...