Форум: "Начинающим";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизОбращение к динамическим компонентам Найти похожие ветки
← →
.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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c