Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
14-13466
LeReve
2003-05-17 21:21
2003.06.05
Наверное один из глупых вопросов...но с помощью каких функций...


1-13176
super_alex
2003-05-26 16:16
2003.06.05
TScrollBox и TPaintBox


8-13326
sergey bala
2003-02-20 09:59
2003.06.05
Произношение слов на русском якыке


14-13392
Till
2003-05-16 07:39
2003.06.05
Oracle Data Access Components Net 4.05.1.8 for Delphi 6


14-13449
Администратор
2003-05-19 22:01
2003.06.05
CoolTools :)




   Наверх