Я использую TVirtualStringTree в качестве сетки, которая работает довольно хорошо.
Я использую функцию подсказок в виде дерева, чтобы показать подсказку, когда пользователь наводит указатель мыши на ячейку. Мне пришлось изменить HintMode на hmHint, так как я хочу, чтобы мои подсказки появлялись независимо от длины текста в ячейке.
Теперь я пытаюсь отобразить другую подсказку в зависимости от длины подсказки.о местонахождении мыши находится внутри клетки.
Я могу сделать это без проблем, пока подсказка не отобразится с помощью события OnGetHint.Моя проблема в том, что это событие возникает только в следующий раз, когда пользователь перемещает мышь в другую ячейку.
Я не могу найти способ обновить подсказку, пока она отображается, а мышьпереместился в ту же ячейку
Я рассмотрел предложения по другим элементам управления, используя событие OnShowHint приложения, но они просто заставляют подсказку исчезнуть и больше не показываться.
Кто угодноесть какие-нибудь идеи?
Спасибо
Обновление
После некоторого исследования я обнаружил, что если кто-то поможет найти решение:
Метод CMHintShow устанавливает в поле CursoRect записи HintInfo границы ячейки.Кажется, это останавливает VCl от повторного запуска кода подсказки до тех пор, пока мышь не выйдет из этого прямоугольника (TApplication.HintMouseMessage).
Если я установлю CursorRect на значение, меньшее границы ячейки, подсказка будет обновлена.Я использую VT в нескольких местах для разных целей, поэтому я не могу вносить эти изменения напрямую.Было бы хорошо получить решение, которое не требует этого изменения.