Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ПОЯВЛЕНИЕ ПОДСКАЗКИ ПРИ НАВЕДЕНИИ НА ComboBox

2.4K
11 сентября 2003 года
slego
25 / / 19.08.2003
Подскажите, пожалуйтса, как решить следующую задачу:
при наведении на объект типа TComboBox появлялась подсказка, содержащая TComboBox->Text.

Пробовал такой пример: в обработчике события Формы в методе OnMouseMove

void __fastcall TMainForm::MainFormMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
((TControl *)Sender)->ShowHint = true;
((TControl *)Sender)->Hint = Sender->ClassName();
}

... ничего толкового не вышло - при наведении на ЛЮБОЙ объект всплывает одна и та же подсказка "TForm"

Спасибо за любую информацию.
310
11 сентября 2003 года
fellow
853 / / 17.03.2003
Вам следует проверить, находится ли курсор мыши на Вашем комбинированном списке, и только в этом случае показывать всплывающую подсказку.
315
12 сентября 2003 года
Nick_M
399 / / 29.05.2003
Цитата:
Originally posted by slego

Пробовал такой пример: в обработчике события Формы в методе OnMouseMove

void __fastcall TMainForm::MainFormMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
((TControl *)Sender)->ShowHint = true;
((TControl *)Sender)->Hint = Sender->ClassName();
}
... ничего толкового не вышло - при наведении на ЛЮБОЙ объект всплывает одна и та же подсказка "TForm"



Конечно будет подсказка TForm, ведь Sender - это компонент, вызвавший обработчик события. В данном примере - MainForm. Для Вашей задачи необходимо обрабатывать событие OnMouseMove компонента ApplicationEvents. Вот кусок кода:

void __fastcall TForm1::ApplicationEvents1ShowHint(AnsiString &HintStr,
bool &CanShow, THintInfo &HintInfo)
{
if (HintInfo.HintControl->Name == "ComboBox1")
{
HintStr = ComboBox1->Text;
return;
};
CanShow = false;
}

2.4K
12 сентября 2003 года
slego
25 / / 19.08.2003
Огромное спасибо! Заработал слудующий вариант:

void __fastcall TDiagramQueryForm::ApplicationEvents1ShowHint(
AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo)
{
if (HintInfo.HintControl->ClassNameIs("TComboBox"))
{
((TComboBox *)HintInfo.HintControl)->Hint =
((TComboBox *)HintInfo.HintControl)->Text;
}
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог