D6 教授
我们有一个带有特殊网格的特殊应用程序。它有一个提示窗口,可以显示其他不能放在单元格中的信息。例如长备忘录。当您将鼠标移动到一个单元格时,它会等待 2 秒,并显示信息。
这个主题的问题是 HintWindow 无法正常工作,或者与正常“提示”的工作方式相同。
出现正常提示,但在以下情况下它们会消失: - 显示时间已过的提示 - 活动表单已停用 - 显示新表单 - 应用程序被另一个任务替换(ALT + TAB)
但是我们的 HintWindow 无法检测到新表单的显示或应用程序的更改——它一直保持在顶部,直到 disapp。时间... :-(
我们使用“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 提示窗口会循环出现和消失。
所以:我们需要知道如何制作一个与应用程序“Hint”以相同方法工作的 HintWindow,但仅限于这个网格。它必须在“任务更改”、“表单更改”时关闭。怎么做?
感谢您的帮助:dd