Главная страница
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.018 c
1-13166
Сюткин Павел
2003-05-24 09:49
2003.06.05
Версия MS Office


3-13081
prof
2003-05-08 08:18
2003.06.05
Считывание данных из ячейки


14-13451
Vlad Oshin
2003-05-15 09:24
2003.06.05
Не верится, но как объяснить?


14-13404
Василий
2003-05-14 15:50
2003.06.05
Forex и с чем его едят


14-13440
Леприкон
2003-05-20 07:43
2003.06.05
Фирме для работы над интересным проектом требуется компонент