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

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

25.03.2011, 19:37. Показов 2122. Ответов 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru