Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188

Как при нажатии на RadioButtonGroup принудительно вывести подсказку над Edit

11.08.2015, 22:38. Показов 2367. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, приветствую! Помогите разобраться пожалуйста.
Есть RadioGroupButton (с 2-мя Item) и один Edit.
Хочу, чтобы при выборе одного из вариантов в RadioGroup над полем Edit всплывала подсказка(Hint), вбитая в свойство Hint Edit'a.
Нигде не смог найти почему-то реализацию...
Заранее благодарен)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2015, 22:38
Ответы с готовыми решениями:

При нажатии на определенную область TImage вывести сообщение или подсказку
Дана картинка TImage и при нажатии определенной области выводится сообщение или подсказка о компоненте. Например картинка палитры...

В Edit убрать текст и при нажатии enter вывести сообщение
Нужно в Edit убрать текст и при нажатии enter вывести сообщение в котором будет максимальное кол символов. Если max=Text.Length();...

Как вывести подсказку при вводе текста в richtextbox
Например пишешь : пр И программа предлогает : привет (как подсказки в visual studiо)

6
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,912
Записей в блоге: 12
11.08.2015, 23:15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class TForm1 : public TForm
{
__published:
    // ...
private:
    THintWindow *hnt; // Раз
public:
    __fastcall TForm1(TComponent* Owner);
};
 
// ... 
 
void __fastcall TForm1::RadioGroup1Click(TObject *Sender) // при клике на радиогруппу
{
    hnt = new THintWindow(this);
    TRect r = ed->BoundsRect;
    TPoint p = ClientToScreen(r.TopLeft());
    r.Offset(p.X - r.Left, p.Y - r.Top - ed->Height);
    hnt->ActivateHint(r, ed->Hint); // показываем хинт над Edit-ом
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::edClick(TObject *Sender) // клик по Edit-у гасит хинт...
{
    hnt->ReleaseHandle();
    delete hnt;
}
1
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
12.08.2015, 00:15  [ТС]
Volvo, спасибо большое за ответ.
У меня среда разработки Embarcadero RAD Studio 2010, там функция Offset отсутствует(я так понял, никаких библиотек подключать для ее использования не надо?). Чем ее можно заменить?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
12.08.2015, 10:14
Хмм. Хотел зайти через такой костыль, но не всплывает подсказка зараза:
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
  TRadioGroup *pRG = static_cast<TRadioGroup*>( Sender );
  //Edit1->Hint = pRG->Items->Strings[pRG->ItemIndex];
  //Edit1->ShowHint = true;
 
  Application->Hint = pRG->Items->Strings[pRG->ItemIndex];
  Application->ShowHint = true;
  Application->ActivateHint( TPoint( Edit1->Left, Edit1->Top ) );
}
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
12.08.2015, 10:31
Ключевым здесь является hnt->ActivateHint, а все габаритные вещи малосущественны и зависят от версий. Для моей пятерки, например, так это выглядит:
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
    hnt = new THintWindow(this);
    TPoint p = ClientToScreen(TPoint(ed->Left,ed->Top));
    TRect te, r = hnt->CalcHintRect(160,ed->Hint,0);
    te=TRect(p.x,p.y+ed->Height,p.x+r.right,p.y+ed->Height+r.bottom);
    hnt->ActivateHint(te, ed->Hint);
}
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,912
Записей в блоге: 12
12.08.2015, 10:51
Лучший ответ Сообщение было отмечено DPS как решение

Решение

Цитата Сообщение от DPS Посмотреть сообщение
Чем ее можно заменить?
Функцией OffsetRect
0
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
12.08.2015, 11:33  [ТС]
А я в итоге просто решил курсор переводить на Edit, а когда курсор оказывается на Edit'е, автоматически вылезает его Hint.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    if(this->RadioGroup1->ItemIndex == 1)
    {
        Edit1->Visible  =   true;
        Edit1->SetFocus();
 
        TPoint P;
 
        P = ClientToScreen(Point( (Edit1->Left + Edit1->Width/2),  (Edit1->Top + Edit1->Height) ) );
        SetCursorPos(P.x, P.y);
    }
    else
    {
        Edit1->Visible  =   false;
        Edit1->Text     =   "";
    }
Спасибо большое за советы *-)
Попробую потом экспериментировать с OffsetRect
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2015, 11:33
Помогаю со студенческими работами здесь

При вводе значения в поля Edit и нажатии на Button данные вывести в Excel
Доброе утро всем. Я снова обращаюсь за вашей помощью. У меня такая задача. Есть Edit(2 штуки) и Button1(1 штук). Мне нужно сделать так,...

Как при наведении на ячейку QTableWidget вывести подсказку с содержимым ячейки?
подскажите как при наведении на ячейку QTableWidget вывести подсказку с содержимым ячейки?

При нажатии ЛКМ выбранный цвет пикселя преобразовать в формат типа $00523C13 и вывести в Edit
Есть код для взятия цвета пикселя как в форме, так и вне ее. Код написан в таймере var pnt:TPoint; begin Timer1.Interval=10; ...

Как в конфигураторе вывести подсказку при написании текста по данным объекта и возможным методам.
Как в конфигураторе вывести подсказку при написании текста, не для выражений типа &quot;Для, Если &quot; и пр. А подсказку по данным...

Как при нажатии на кнопку добавлять edit
Есть таблица usluga в нем: id | usluga | price | По нажатии на кнопку &quot;Добавить&quot; записывается в тхт файл &lt;input name='name'...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru