Форум: "Основная";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
ВнизКак при щелчке на компоненте сделать так, чтобы он Найти похожие ветки
← →
___Nikolay (2003-05-27 07:30) [0]Как при щелчке на компоненте во время выполнения программы сделать так, чтобы он "выделялся", т.е. чтобы по краям появлялись чёрные квадратики, потянув за которые можно было бы изменять размер компонента? ( как в редакторе форм Delphi)
← →
KSergey (2003-05-27 08:10) [1]Не знаю как сделано в дельфи (хотя может посмотреть?), я сделал тупо: создал 8 маленьких TShape в нужных местах, каждому назначил соотв. курсор - ну и отлавливая нажание мыши на них перемещаю элементы...
Как сделать сомостроятельное рисование - не знаю.
Правда, с любами элементами - возможно - не выйдет.
Боюсь, что наследники TWinControl перекроют эти самые SHape.
А может кто подскажет как бы это обойти?
Я вижу 2 варианта:
1) рисовать части квадратиков как на канве TWinControl, так и на его родителе (но это же заколебаешьтся...)
2) создавать квадратики от TWinControl, но это ж сколько ресурсов отожрется...
← →
Думкин (2003-05-27 08:16) [2]Можно так.
Например при щелчке активизируется прозрачное окно, по краям - не прозрачное - слегка больше твоего компонента. Его и меняешь и таскаешь. После или во-время манипуляций - оно передает соответствующие параметры - твоему компоненту.
Подобная реализация описана в книге по Delphi 3 - там сборник рецептов от нескольких человек(америкосов). Точное название, к сожалению, сейчас не помню. Дома лежит.
← →
KSergey (2003-05-27 08:18) [3]Аааа ну вообще-то да, достаточно одного окна, на нем и рисовать.. Точно! ("достаточно одной таблэтки")
← →
Дмитрий Баранов (2003-05-27 09:54) [4]Я делал 8 окошек со стилем WS_EX_TOPMOST or WS_EX_TOOLWINDOW, хэндл родителя - 0, или GetDesktopWindow, обрабатывал WM_ERASEBKGND, закрашивая DC черным, обрабатывал WM_SETCURSOR, а при установке или потере фокуса на контрол, который нужно ресайзить, манипулировал их видимостью. Код привести не могу, к сожлению, потерял за давностью.
← →
___Nikolay (2003-05-27 11:59) [5]Всем Большой Пасиб! )))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.025 c