![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое создание объектов [D7, 95/98, XP]
Димыч © (2006-11-14 13:09:00)На главной форме я динамически создаю несколько объектов (одного типа Timage, они имитируют красочные кнопки, при навидении на них мыши подсвечиваются и тд), все эти объекты храняться в массиве, им на события OnmouseMave OnmouseDown OnmaouseUp я привязываю функции которые являются частью главной формы (может не правильно выразился, вообщем функции TForm1. ...), вопрос такой у меня можно ли один из объектов поместить на другой форме (не главной) и будет ли у такого объекта правильно работать указанные события.
Спрашиваю потому, что сделал так и у меня такой объект не реагирует на мышь, может это конечно ошибка с моей стороны, если нет то объясните пожалуйста почему так происходит.
MsGuns (2006-11-14 20:39:00) [1]>Димыч © (14.11.06 13:52) [5]
Осподи, ужасть то какая Э8(Е)
Надо же было на ночь такое увидеть !
StriderMan (2006-11-14 16:02:00) [2]
> neon_buttons [ 8].
и это для каждого контрола???
а в цикле никак? код какой-то чудовищный получается.
хотя бы используй оператор with
Димыч (2006-11-14 14:10:00) [3]Искренне извеняюсь за беспокойство, ошибка была в том что в обработке сообщения WM_NCHITTEST формы Form5 не поставил inherited.
Димыч (2006-11-14 13:59:00) [4]Если отключаю свою обработку сообщения WM_NCHITTEST, то все работает, если влючаю Timage перестает реагировать на мышь.
Димыч (2006-11-14 13:53:00) [5]На другой форме (Form5) объект так же добавляется по событию OnCreate но только формы Form5
Димыч (2006-11-14 13:52:00) [6]neon_buttons [1].img:=timage.Create(form1);
Вот так добавляется объект на главной форме, происходит это по событию OnCreate главной же формы
...
neon_buttons [1].img.parent:=form1;
neon_buttons [1].img.height :=20;
neon_buttons [1].img.width :=46;
neon_buttons [1].img.top :=0;
neon_buttons [1].img.left :=form1.ClientRect.Right-56;
neon_buttons [1].img.Anchors :=[akRight,aktop];
neon_buttons [1].img.picture:=neon_buttons [1].normal;
neon_buttons [1].img.tag :=1;
neon_buttons [1].img.onmousemove := neon_move;
neon_buttons [1].img.onmousedown := neon_down;
neon_buttons [1].img.onmouseup := neon_up;
neon_buttons [1].img.onclick := neon_click;
neon_buttons [1].img.enabled:=true;
neon_buttons [1].img.visible:=true;
Вот так на другой форме
...
neon_buttons [8].img:=timage.Create(self);
neon_buttons [8].img.parent:=form5;
neon_buttons [8].img.height :=20;
neon_buttons [8].img.width :=46;
neon_buttons [8].img.top :=0;
neon_buttons [8].img.left :=form5.ClientRect.Right-56;
neon_buttons [8].img.Anchors :=[akRight,aktop];
neon_buttons [8].img.picture:=neon_buttons [8].normal;
neon_buttons [8].img.tag :=8;
neon_buttons [8].img.onmousemove := form1.Neon_move;
neon_buttons [8].img.onmousedown := form1.neon_down;
neon_buttons [8].img.onmouseup := form1.neon_up;
neon_buttons [8].img.onclick := form1.neon_click;
neon_buttons [8].img.enabled:=true;
neon_buttons [8].img.visible:=true;
Вообщем только что поэксперементировал оказалось что действительно все работает, проблема в том что я не правильно обрабатываю событие WM_NCHITTEST, что именно я делаю не правильно непоюму, уже создал торой вопрос по этому поводу
clickmaker (2006-11-14 13:45:00) [7]
> вопрос такой у меня можно ли один из объектов поместить
> на другой форме (не главной) и будет ли у такого объекта
> правильно работать указанные события.
> Спрашиваю потому, что сделал так
а как сделал-то?
Димыч (2006-11-14 13:29:00) [8]
> чужой объект - чужое событие.
Что-то не понял, объект чужойй - потому что на другой форме (не главной), а что значити чужое событие
KilkennyCat (2006-11-14 13:16:00) [9]чужой объект - чужое событие.
Сергей М. (2006-11-14 13:10:00) [10]
> может это конечно ошибка с моей стороны
Конечно с твоей, и сомнений не может быть никаких