D6 Проф.Delphi: Как сделать мое собственное окно подсказки?
У нас есть специальное приложение со специальной сеткой. У этого есть HintWindow, что может показать другую информацию, которая не может быть помещена в ячейки. Например, длинные записки. Когда вы переместите мышь в ячейку, она ждет 2 секунды и покажет информацию.
Проблема этой темы, что HintWindow работает некорректно или так же, как это делают обычные «подсказки».
Нормальные подсказки появляются, и они исчезают в этих случаях: - подсказка, показывающие время ellapsed - активная форма деактивируется - новый вид, показанный - приложение заменена другой задачей (ALT + TAB)
Но наш HintWindow не может обнаружить, что новая форма отображается, или приложение изменено - оно остается сверху, пока не исчезнет. время ... :-(
Еще одна проблема, которую мы использовали «MouseMove», чтобы обнаружить изменение мыши -.., чтобы начать Hint
Это событие происходит также, если HintWindow исчезает Таким образом, мне нужно защитить от циклические шоу с этим кодом:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Caption := INtTOStr(X) + ' ' + IntToStr(Y) + ' ' + IntToStr(GetTickCount);
// If same coordinate I don't show it again
if (LX <> X) or (LY <> Y) then begin
miHint.DoActivateHint(Self, 'Anytext', 2000, 2000);
LX := X; LY := Y;
end;
end;
Без LX, LY HintWindow циклически появляется и dissappears
Итак:. мы должны знать, как мы делаем HintWindow, который работает в том же методе, как приложения «Подсказка », но ограничено в эту сетку. Он должен закрыть «смена задачи», «изменение формы». Как это сделать?
Спасибо за вашу помощь: дд
Аааа ... Я забыл сказать, что этот контроль является виртуальной сетки, а не на основе на сетке VCL - он основан на customcontrol. Так что намеки исходят от этого класса. Но: Я хочу использовать не «обычный» подсказку, которая видна, когда вы переходите к любому элементу управления. Я хочу, чтобы это давало информацию из ячеек. Поэтому мне нужно перехватить курсор. – durumdara
@durumdara -> «нужно поймать движение курсора» - «HintInfo», переданный в событие «OnShowHint», уже имеет позицию курсора, описанная мной реализация использует его для определения того, в какой ячейке будет включен «намек». Я также предоставил некоторые ссылки на документацию. Прочтите их немного ... –