0

我正在使用 Orpheus control v4.08 和 Delphi XE2,我面临以下描述的问题。

我正在使用 TOvcTable,它的一列是 TOvcTCCheckBox。此表是可编辑的。在运行时复选框列可以被选中或取消选中。

现在要检查此列,我需要单击此列两次。

这在使用 Orpheus 控制版本 v3.08 的 Delphi 4 中运行良好。单击即可选中/取消选中复选框列。

注意:有一个属性 AcceptActivationClick 在上述两种情况下都设置为 true。

这个问题有什么解决方法吗?

4

1 回答 1

1

这是一个解决方法:使用 OvcTable 的 MouseDown-Event 如下:

procedure TForm1.OvcTable1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
   RowNum, ColNum: Integer;
begin
   OvcTable1.CalcRowColFromXY(X, Y, RowNum, ColNum);
   if (OvcTable1.Columns.List[ColNum].DefaultCell is TOvcTCCheckBox) and
      ((RowNum <> OvcTable1.ActiveRow) or (ColNum <> OvcTable1.ActiveCol)) then
   begin
      PostMessage(OvcTable1.Handle, ctim_StartEdit, 0, 0);
      PostMessage(OvcTable1.Handle, ctim_StartEditMouse, 0, X + 65536 * Y);
   end;
end;

来源: http: //sourceforge.net/tracker/ ?func=detail&atid=529790&aid=3562412&group_id=71004

于 2012-09-05T03:51:48.393 回答