Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.05;
Скачать: CL | DM;

Вниз

Как при щелчке на компоненте сделать так, чтобы он   Найти похожие ветки 

 
___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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
14-13460
eLVik
2003-05-20 12:48
2003.06.05
Компонент


7-13499
Askik
2003-04-02 18:48
2003.06.05
Как подступиться к системному динамику(PC Speaker) через Win2K


7-13489
Stas
2003-04-03 11:41
2003.06.05
Копирование файлов


14-13422
Holy
2003-05-19 13:07
2003.06.05
Использовать ли классы


1-13219
dfgdfgsdg
2003-05-26 23:08
2003.06.05
Активация формы?