Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
61 / 49 / 6
Регистрация: 07.01.2010
Сообщений: 307

Появление компонента при наведении на него

25.03.2011, 19:37. Показов 2147. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Встала очень интересная задача)))Есть карта района города - при наведении на дом появляется радио кнопка. Кнопки я все разместил - они все изначально скрыты, а вот как сделать так, что бы появлялась та, над которой курсор не могу сделать(((Пробовал через событие OnMove, но это событие не работает когда Visible = false.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2011, 19:37
Ответы с готовыми решениями:

Появление изображения при наведении курсора мыши
а можно ли так сделать, что бы при наведении на что-нибудь(кнопку например) менялась какая-нить картинка на форме, а когда мышку...

Масштабирования изображения при наведении на него курсора
Народ помогите!!! Создать компонент - потомок TImage, который проводит масштабирования относительно размеров компонента при наведении...

Появление окна,при наведении
Собственно дело обстоит так,в лист view'e при наведении на итем должно показываться мини окошко(что-то вроде подсказки),в котором будет...

7
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
25.03.2011, 23:10
обрабатывай OnMove для формы а не для компонента.....
тоисть в OnMove для формы опиши
if(x>=RB->Left&&x<=RB->Left+Rb->Width&&y>=RB->Top&&y<=RB->Top+Rb->Button)
RB->Visible=true;
а все указатели на кнопки внеси в масив или узнавай из компонент формы как сам хочешь...
чтобы небыло проблем со скрытием добавь Visible=false; при потере фокуса кнопки а в вышеуказзаный код RB->SetFocus();
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.03.2011, 23:10
Делайте при попадании курсора в регион на карте.
0
61 / 49 / 6
Регистрация: 07.01.2010
Сообщений: 307
26.03.2011, 09:25  [ТС]
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
обрабатывай OnMove для формы а не для компонента.....
тоисть в OnMove для формы опиши
if(x>=RB->Left&&x<=RB->Left+Rb->Width&&y>=RB->Top&&y<=RB->Top+Rb->Button)
RB->Visible=true;
а все указатели на кнопки внеси в масив или узнавай из компонент формы как сам хочешь...
чтобы небыло проблем со скрытием добавь Visible=false; при потере фокуса кнопки а в вышеуказзаный код RB->SetFocus();
Сделал вот так:
C++
1
2
3
4
for(int i = 1; i <= 5; i++)
  if( X >= ((TRadioButton*)FindComponent("RadioButton"+String(i)))->Left && X <= ((TRadioButton*)FindComponent("RadioButton"+String(i)))->Left + ((TRadioButton*)FindComponent("RadioButton"+String(i)))->Width && Y >= ((TRadioButton*)FindComponent("RadioButton"+String(i)))->Top && Y <= ((TRadioButton*)FindComponent("RadioButton"+String(i)))->Top + ((TRadioButton*)FindComponent("RadioButton"+String(i)))->Height)//RadioButton2->Bottom)
{((TRadioButton*)FindComponent("RadioButton"+String(i)))->Visible = true;break;}
  else ((TRadioButton*)FindComponent("RadioButton"+String(i)))->Visible = false;
Но при прохождении курсора сразу по нескольким объектам они все остаются видимыми, а при наведении курсора на пустое место они все пропадают. Я сделал это для 5 объектов иуже есть маленькая задержка, а у меня их примерно 70 - когда я их все сделаю - вообще лагать будет??))))
LK а мне надо будет тогда прописывать все регионы вручную для каждой кнопки???Или я не так понял?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
26.03.2011, 13:50
Цитата Сообщение от FroL Посмотреть сообщение
1. Но при прохождении курсора сразу по нескольким объектам они все остаются видимыми, а при наведении курсора на пустое место они все пропадают. Я сделал это для 5 объектов иуже есть маленькая задержка, а у меня их примерно 70 - когда я их все сделаю - вообще лагать будет??))))
2. а мне надо будет тогда прописывать все регионы вручную для каждой кнопки???Или я не так понял?
1. Делай сразу невидимыми в OnMouseLeave.
2. Да, но смысл тот же, так что регионы можно оставить в покое .
0
61 / 49 / 6
Регистрация: 07.01.2010
Сообщений: 307
26.03.2011, 13:59  [ТС]
Может тупой вопрос, но все же задам)))OnMouseLeave - Почему у меня его нет???
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
26.03.2011, 14:09
ой, это ж мув для формы , я думал про кнопки
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
27.03.2011, 10:42
задержка потому что ты используешь FindComponent, а работает он не шустро...
поэтому зделай так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
TRadioButton** Ar;// в классе своей формы
TRadioButton* Act;// в классе своей формы
 
Act=NULL; при создании формы
 
Ar=new (TRadioButton*) [count];
int j(0);
for(int i = 1; i <= count; i++)
   Ar[j++]=((TRadioButton*)FindComponent("RadioButton"+String(i)));
 
а затем вот так:
 
for(int i = 0; i < count; i++)
  if( X >= ((TRadioButton*)Ar[i])->Left 
   && X <= ((TRadioButton*)Ar[i])->Left + ((TRadioButton*)Ar[i])->Width 
   && Y >= ((TRadioButton*)Ar[i])->Top 
   && Y <= ((TRadioButton*)Ar[i])->Top + ((TRadioButton*)Ar[i])->Height)
{if(Act)Act->Visible=false;
Act=((TRadioButton*)Ar[i]);
Act->Visible = true;break;}
это и работать будет шустро и всегда будет видна последняя кнопка

в своем варианте сделай так

C++
1
2
3
4
5
6
for(int i = 1; i <= 5; i++)
  {TRadioButton* v=((TRadioButton*)FindComponent("RadioButton"+String(i)));
if( X >=v->Left && X <=v->Left + v->Width && Y >=v->Top 
&& Y <=v->Top + b->Height)//RadioButton2->Bottom)
{v->Visible = true;break;}
  else v->Visible = false;}
и уже тормозов должно поубавится

Добавлено через 3 минуты
а да и затем delete[] Ar;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2011, 10:42
Помогаю со студенческими работами здесь

Одновременное появление блоков при наведении
Приветствую! Необходимо сделать так, чтобы при наведении на один элемент появлялся другой и так, чтобы у элемента на который наводят...

Появление блока при наведении курсора
&lt;!DOCTYPE HTML&gt; &lt;html lang=&quot;ru-RU&quot;&gt; &lt;head&gt; &lt;title&gt;...&lt;/title&gt; &lt;/head&gt; &lt;style&gt; #cat-block {display: none;} ...

Появление курсора на кнопке при наведении
Собственно сделал кнопку &lt;form class=&quot;button-top&quot;&gt; &lt;button class=&quot;get-started&quot; type=&quot;submit&quot; name=&quot;submit&quot; id=&quot;submit&quot;&gt;GET...

Появление картинки при наведении мышки
Категорическое здрям! Задача: отобразить текст и картинку при наведении мышки на кнопку. С первой частью проблем нет: ...

Появление текста при наведении на ссылку
при наведении на ссылку должен появиться текст который говорит например если ты перейдешь по ссылке то тебе...... html


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru