ПОЯВЛЕНИЕ ПОДСКАЗКИ ПРИ НАВЕДЕНИИ НА ComboBox
при наведении на объект типа 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"
Спасибо за любую информацию.
Вам следует проверить, находится ли курсор мыши на Вашем комбинированном списке, и только в этом случае показывать всплывающую подсказку.
Цитата:
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"
Пробовал такой пример: в обработчике события Формы в методе 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;
}
void __fastcall TDiagramQueryForm::ApplicationEvents1ShowHint(
AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo)
{
if (HintInfo.HintControl->ClassNameIs("TComboBox"))
{
((TComboBox *)HintInfo.HintControl)->Hint =
((TComboBox *)HintInfo.HintControl)->Text;
}
}