QuantumGrid VCL - 如何在单元格单击事件中更改超链接列的文本?

时间:2011-09-25 21:20:34

标签: delphi quantumgrid

使用:Delphi XE,Devexpress VCL。

在单元格单击事件中,我正在尝试更改Devexpress的QuantumGrid VCL控件中超链接列中单元格的值。该列是自定义列,未绑定到数据集。

超链接列的属性按以下方式设置:

  

编辑:=假;
      ReadOnly:= True;
      SingleClick:= True;

以下代码(grdReprint是网格的DBTableView,而grdReprintColumn2是Hyperlink列)无效:

procedure TfReceiptList.grdReprintCellClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: boolean);
var
  v: integer;
  c: integer;
begin

  if ACellViewInfo.Item = grdReprintColumn1 then
  begin
    v := datamod.uspRECEIPT_LSTRECEIPTID.AsInteger;

    fMain.PrintReceipt(v);

  end
  else if ACellViewInfo.Item = grdReprintColumn2 then
  begin

    (* This code is ineffective because the cell contents do not change *)

    if ACellViewInfo.Text = 'Void' then
      grdReprint.DataController.SetEditValue(grdReprintColumn2.Index, 'Unvoid', evsValue)
    else
      grdReprint.DataController.SetEditValue(grdReprintColumn2.Index, 'Void', evsValue);

  end;
end;

如果上述内容不是更改单元格中文本的正确方法,那么欢迎其他想法。

TIA。

1 个答案:

答案 0 :(得分:0)

当超链接控件中的SingleClick属性设置为TRUE时,不会调用GridViews CellClick事件。

(如果我能理解为什么你使用超链接控件看起来只是文字,我可以进一步提供帮助。请查看我的问题下面的问题。)

编辑:如果在指示OP时gridViews Editing属性为False,则此答案不正确。如果编辑为真FWIW,则会描述行为。