Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
sniper::p
Зарегистрирован: 04.10.2005 Сообщения: 237 Откуда: rus/73
|
Добавлено: Пт Апр 14 2006 23:16 Заголовок сообщения: Помогите с курсором... |
|
|
Господа любители и товарищи профессионалы!!!
Проблема: надо сделать (в билдере) курсор величиной во весь ClientRect, один такой большой крестик... Я использую для этого канву формы, но если поверх нее есть визуальный объект, унаследованный любым способом от TObject, он перекрывает ее, крестик не рисуется. Может быть подскажете, как сие реализовать. В принципе, может быть, попробовать с помощью стандартных средств винды? Тогда подскажите их... _________________ Нет предела совершенствованию |
|
Вернуться к началу |
|
|
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Пн Апр 17 2006 20:42 Заголовок сообщения: |
|
|
Отлавливаешь в событии Application::OnMessage движения мыши и считываешь координаты курсора. |
|
Вернуться к началу |
|
|
sniper::p
Зарегистрирован: 04.10.2005 Сообщения: 237 Откуда: rus/73
|
Добавлено: Пн Апр 17 2006 21:41 Заголовок сообщения: |
|
|
Гениально!!! я бы не додумался сам Но есть небольшая проблема: вопрос стоял не этим ребром... Вопрос был в том, как обойти такую вещь: канва любого компонента перекрывает канву формы, из-за чего все проблемы. _________________ Нет предела совершенствованию |
|
Вернуться к началу |
|
|
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Ср Апр 19 2006 03:18 Заголовок сообщения: |
|
|
Тогда понятно.
А не хочешь такой контрол сам написать? По-моему, не сложно.
Можно еще взять два TShape (один - горизонтальная линия, другой - вертикальная) и двигать их вместе с мышой. Правда, все равно придется контрол писать, а то эти шэйпы любой TWinControl перекроет напрочь.
Хотя наверняка у Гейтса уже что-то придумано для этого. Поэтому, как любой программер, которому посоветовать нечего, но, тем не менее, надо, скажу: см. MSDN. |
|
Вернуться к началу |
|
|
sniper::p
Зарегистрирован: 04.10.2005 Сообщения: 237 Откуда: rus/73
|
Добавлено: Ср Апр 19 2006 22:08 Заголовок сообщения: |
|
|
MSDN сразу отметается... билдер был выбран из-за простоты и красоты. Конечно, есть другой выход - рисовать непосредственно на канве формы все эти шейпы, но тогда мне придется их опять делать самому. Кстати, выяснилась такая проблема для графических файлов: они тоже перекрывают все нахер. Между прочим, из-за внедренного в форму Canvas, любая перерисовка ОЧЕНЬ заметна (если бы не рисовалась сначала форма, а потом компоненты, было бы быстрее) _________________ Нет предела совершенствованию |
|
Вернуться к началу |
|
|
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Сб Апр 22 2006 23:17 Заголовок сообщения: |
|
|
Просто TShape разместить не оптимально. Они перекроются наследниками TWinControl. Так что пиши сам наследник TWinControl, в котором размести два TShape. По-моему, самый быстрый способ. |
|
Вернуться к началу |
|
|
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Вс Апр 23 2006 03:22 Заголовок сообщения: |
|
|
А чтобы перерисовка была НЕ ОЧЕНЬ заметна, пиши на VC++. Ребята в Борланде почти все виндовские компоненты либо упрощают, либо изменяют. |
|
Вернуться к началу |
|
|
sniper::p
Зарегистрирован: 04.10.2005 Сообщения: 237 Откуда: rus/73
|
Добавлено: Вс Апр 23 2006 08:51 Заголовок сообщения: |
|
|
Согласен. Но мне не нужно на форму помещать наследников TWinControl, у меня в принципе будет только графика и текст. VC++ испльзует не настолько красивый компонентный подход (попытались, конечно, но это не то) _________________ Нет предела совершенствованию |
|
Вернуться к началу |
|
|
|