D6 Проф.
У нас есть специальное приложение со специальной сеткой.У него есть окно HintWindow, которое может отображать другую информацию, которая не может быть помещена в ячейки.Например, длинные заметки.Когда вы перемещаете мышь в ячейку, она ждет 2 секунды и показывает информацию.
Проблема этой темы в том, что HintWindow не работает должным образом или так же, как обычные «подсказки».
Появляются нормальные подсказки, и они исчезают в следующих случаях: - подсказка, показывающая истекшее время - активная форма деактивирована - отображается новая форма - приложение заменено другой задачей (ALT + TAB)
Но наше окно HintWindow не может обнаружить отображение новой формы или изменение приложения - оно остается в верхней части, пока не будет отклонено.time ...: - (
Еще одна проблема, которую мы использовали "MouseMove", чтобы обнаружить изменение мыши - чтобы запустить подсказку.
Это событие также происходит, если 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.
Итак: нам нужно знать, как мы создаем HintWindow, которое являетсяработает в том же методе, что и приложение «Подсказка», но ограничен этой сеткой. Он должен закрываться на «изменение задачи», «изменение формы». Как это сделать?
Спасибо за вашу помощь: дд