Главная страница
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.013 c
4-13516
Soft
2003-04-08 12:14
2003.06.05
Память занимаемая программой.


14-13403
Jaxtor
2003-05-16 16:39
2003.06.05
Документация по EWwin


1-13195
YuraKiller
2003-05-26 01:56
2003.06.05
Как убить симлов из стринга?


8-13327
Dobriy
2003-02-20 08:48
2003.06.05
Посоветуйте на чём писать


3-13063
Andrey02
2003-05-17 17:46
2003.06.05
Изображения в БД MS Access и Delphi ADO