Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Элемент управления, рисуемый за пределами окна


Автор: Etar 23.9.2008, 19:19
Привет!
Покажу на картинке чего я хочу:
http://www.freeimagehosting.net/image.php?a929055271.jpg
нужно такое организовать для treelist

когда мышью я на него навожу то он рисуется как справа, когда убираю с него мышь - то рисуется он как слева

Можно было бы организовать это в виде всплывающего окна - когда навожу мышкой на treelist, то он исчезает на форме, открывается новое всплывающее окно на месте положения treelist, в котором сидит другой treelist (тот же самый, только больше размером), пробовал сделать это по обычному, но тут возникают проблемы с перерисовкой (рисуется медленно, видно как исчезает/появляется)

Может подскажет кто как такое можно сделать?
 

Автор: aktuba 23.9.2008, 20:30
Не могу найти причины, когда такое может понадобиться, но, раз надо, значит надо...
Вариантов решения несколько:
- доп.форма, которая появляется над основной (проблемы синхронизации)
- таже форма, но больше по размеру, часть скрыта (проблемы с отрисовкой компонентов).

Автор: Gawron 24.9.2008, 15:32
Есть ещё один вариант, правда он подходит лишь в том случае, если пользователь не будет сам изменять размеры окна или перемещать его по экрану за заголовок.
РЕШЕНИЕ:
Свойству BorderStyle формы присваиваешь bsNone.
Transparent - true.
TransparentColor - какой-нибудь цвет, который в программе использовать не будешь.
Кладёшь на форму компонент Panel или что-нибудь похожее, в Инспекторе объектов устанавливаешь толщину границы равной нулю (чтобы его нельзя было заметить), Align - right, цвет - тот же, что и в TransparentColor формы.
При выполнении программы просто изменяй ширину treelis-та. Так как часть окна, находящаяся под невидимой панелью, будет так же не видна, но при этом она будет оставаться полноценной частью окна, то проблем с кажущимся 'выходом за пределы окна' не будет, ведь treelist будет оставаться в пределах окна ПОЛНОСТЬЮ.
ЗЫ Если нужно будет изменять размеры или положение окна, а также если очень нужен заголовок окна или его граница - отпишись.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)