| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 будет оставаться в пределах окна ПОЛНОСТЬЮ. ЗЫ Если нужно будет изменять размеры или положение окна, а также если очень нужен заголовок окна или его граница - отпишись. |