사용 : 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.
클릭 한 번만 옵션을 끄면 코드가 작동합니다. –
VOID 및 UNVOID는 하이퍼 링크 컨트롤을 사용하는 것처럼 보이지 않습니다. 어쨌든 단일 클릭 옵션은 editvalue를 하이퍼 링크로 사용합니다. –
editvalue가 하이퍼 링크로 작동하지 않게하는 것은 Editing = false입니다. SingleClick 및 ReadOnly의 다른 값은 아무 효과가없는 것처럼 보입니다. 데이터 세트를 편집 할 수 있습니까? – crefird