![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выбор нескольких элементов типа панель
mnj © (2009-04-22 15:26:00)Добрый день всем
Скажите пожалуйста, можно ли выбрать мышкой несколько панелей, лежащих на форме? Какое событие нужно при этом отлавливать?
Юрий Зотов (2009-04-23 13:31:00) [21]А можно и ничего не рисовать, а выбирать панели кликом (с зажатой Ctrl) и выделять их цветом.
StriderMan (2009-04-23 12:32:00) [22]Можно положить прозрачный контрол с канвой и отслеживать чтобы он всегда был поверх всех и чтобы мессаджи сам не принимал. Рисовать рамку на нем.
brother (2009-04-23 12:26:00) [23]может Bevel поможет?
brother (2009-04-23 12:23:00) [24]а панели обязательно использовать?
StriderMan (2009-04-23 12:16:00) [25]
> рамку рисовать вокруг панели, а не на ней самой, компрене ву ?
топикстартер хотел отрисовывать рамку при выделении мышкой. В процессе выделения она частично будет проходить над(под) лежащими на форме панельками, а не только вокруг, нес па? ;)
Игорь Шевченко (2009-04-23 11:14:00) [26]StriderMan (23.04.09 11:05) [15]
> потому что панели с точки зрения ОС - тоже окна, со своей
> канвой.
рамку рисовать вокруг панели, а не на ней самой, компрене ву ?
StriderMan (2009-04-23 11:05:00) [27]
> Игорь Шевченко © (22.04.09 23:35) [13]
> почему ?
потому что панели с точки зрения ОС - тоже окна, со своей канвой.
Германн (2009-04-23 00:15:00) [28]
> mnj (22.04.09 23:18) [12]
>
> А если на другой панели? Можно ли добраться до Canvas так:
Можно. Но не нужно.
Всё гораздо проще:
type
THackPanel = class(TPanel); // Имя класса (с) Юрий Зотов о)
...
with THackPanel(Panel1).Canvas do
...
Игорь Шевченко (2009-04-22 23:35:00) [29]
> все это рисование под панельками окажется
почему ?
mnj (2009-04-22 23:18:00) [30]А если на другой панели? Можно ли добраться до Canvas так:
TMyPanel = class(TPanel)
.....
private
.....
public
Canvas;
......
end;
TMyForm = class(TForm)
....
MyPanel: TMyPanel;
....
end;
StriderMan (2009-04-22 23:14:00) [31]
> если панели на форме, то рисовать на форме, у нее canvas
> есть и на событии FormPaint доступен
все это рисование под панельками окажется
Игорь Шевченко (2009-04-22 23:04:00) [32]
> Но как - я пока не знаю
если панели на форме, то рисовать на форме, у нее canvas есть и на событии FormPaint доступен
mnj (2009-04-22 22:39:00) [33]Рисовать надо поверх выделяемых панелей. Но как - я пока не знаю.
clickmaker (2009-04-22 18:01:00) [34]> а как нарисовать прямоугольник выделения, если у панели
> нет свойства Canvas?
а рисовать разве надо не поверх всех выделяемых панелей?
Германн (2009-04-22 17:56:00) [35]
> mnj (22.04.09 17:25) [6]
>
> Еще вопрос - а как нарисовать прямоугольник выделения, если
> у панели нет свойства Canvas?
>
У панели есть канва, только она protected. Обманув компилятор можно получить к ней доступ.
mnj (2009-04-22 17:25:00) [36]Еще вопрос - а как нарисовать прямоугольник выделения, если у панели нет свойства Canvas?
mnj (2009-04-22 17:19:00) [37]Спасибо 12, попробую
12 (2009-04-22 17:10:00) [38]onMouseDown координаты, Up координаты
и считать какие панели перекрываются прямоугольником с этими координатами
mnj (2009-04-22 17:07:00) [39]Выбрать - это выделить мышкой как фрагмент изображения набор панелей, находящихся на форме или другой панели. OnClick выдаст мне только одну, насколько я понимаю
Сергей М. (2009-04-22 16:22:00) [40]"выбрать" - это как ?