2011-09-25 35 views
0

使用:Delphi XE,Devexpress VCL。QuantumGrid VCL - 如何更改單元格單擊事件中超鏈接列的文本?

在單元格單擊事件中,我試圖更改Devexpress的QuantumGrid VCL控件中超鏈接列中單元格的值。該列是自定義列,未綁定到數據集。

超鏈接列的屬性被設置爲每:

編輯:=假;
ReadOnly:= True;
SingleClick:= True;

以下代碼(grdReprint是網格的DBTableView,並且,grdReprintColumn2是超鏈接列)是無效的:

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。

+0

如果關閉單擊選項,則您的代碼有效。 –

+0

VOID和UNVOID看起來不像你會使用超鏈接控件。無論如何,單擊選項將作爲超鏈接對編輯值起作用。 –

+0

這是Editing = false,它可以防止編輯值作爲超鏈接進行操作。 SingleClick和ReadOnly的不同值似乎不起作用。你確定數據集是可編輯的嗎? – crefird

回答

0

當超鏈接控件中的SingleClick屬性設置爲TRUE時,不會調用GridViews CellClick事件。

(我可能能夠進一步幫助,如果我爲什麼你使用什麼看起來像只是文本超鏈接控制可以理解見你的問題我下面的評析。)

編輯:這個答案是不正確,如果如OP所示,gridViews Editing屬性爲False。它描述瞭如果編輯是真FWIW的行爲。

相關問題