Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-13284
Vulko
2003-05-17 22:41
2003.06.05
Как вызвать стандартный диалог выбора цвета


14-13452
ghg
2003-05-20 07:57
2003.06.05
алгоритмы интерполяции


7-13501
Jura
2003-04-02 13:49
2003.06.05
Связь по нуль-модему


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


8-13325
greenrul
2003-02-19 12:15
2003.06.05
Как сохранить Canvas в bmp файл?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский