2011-09-25 2 views
0

사용 : Delphi XE, Devexpress VCL.QuantumGrid VCL - 셀 클릭 이벤트에서 하이퍼 링크 열의 텍스트를 변경하는 방법?

셀 클릭 이벤트에서 Devexpress의 QuantumGrid VCL 컨트롤에서 하이퍼 링크 열의 셀 값을 변경하려고합니다. 열은 사용자 지정 열이며 데이터 집합에 바인딩되지 않습니다.

편집 :

하이퍼 링크 컬럼의 속성

은 따라 설정 = 거짓;
ReadOnly : = True;
SingleClick : = True;

다음 코드 (grdReprint가 grdReprintColumn2 하이퍼 링크 열이며, 격자의 DBTableView이며) 비효율적이다

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는 하이퍼 링크 컨트롤을 사용하는 것처럼 보이지 않습니다. 어쨌든 단일 클릭 옵션은 editvalue를 하이퍼 링크로 사용합니다. –

+0

editvalue가 하이퍼 링크로 작동하지 않게하는 것은 Editing = false입니다. SingleClick 및 ReadOnly의 다른 값은 아무 효과가없는 것처럼 보입니다. 데이터 세트를 편집 할 수 있습니까? – crefird

답변

0

하이퍼 링크 컨트롤의 SingleClick 속성을 TRUE로 설정하면 GridViews CellClick 이벤트가 호출되지 않습니다.

(나는 당신이 단지 텍스트의 모양에 대한 하이퍼 링크 컨트롤을 사용하는 이유를 이해할 수 있다면 더 도울 수 귀하의 질문에 아래에 내 감동적인 장면을 볼 수 있습니다..)

편집 :이 답변은 경우 잘못 OP가 표시하면 gridViews 편집 속성이 False입니다. 편집이 True FWIW 인 경우 동작을 설명합니다.