3

我的部分字符串网格是合格的放置目标,有些则不是(第一行是列标题,第一列是一种索引,后续列可能会被删除)。我有那个编码和工作。

现在我在想,当用户将鼠标拖到一个潜在的放置目标的单元格上时,给用户一个视觉指示可能会很好。我想突出显示他当前悬停的单元格的行和列中的第一个单元格(或者可能是整个行和列,形成一种十字准线;我还没有决定)。我想我可以在OnDrawCell.

我曾想过使用OnMouseMoveand cehck if Dragging then,但是...

我的问题是当我拖动OnMouseMove事件时永远不会被调用。

有没有其他方法可以知道在拖动操作期间光标何时悬停在 strigngrid 上?

4

1 回答 1

4

OnDragOver event专为此而设计;它会自动调用,并提供鼠标指针所在的X和坐标。Y该链接位置有一个代码示例,也演示了如何使用它 - 它用于 a TListBox,但原理是相同的。

procedure TForm1.FormCreate(Sender: TObject);
begin
  ListBox1.Items.Add('Not');
  ListBox1.Items.Add('In');
  ListBox1.Items.Add('Alphabetical');
  ListBox1.Items.Add('Order');
end;

// This OnDragOver event handler allows the list box to
// accept a dropped label.

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source is TLabel;
end;
于 2012-10-25T01:51:42.087 回答