使用: Delphi XE、Devexpress VCL。
セル クリック イベントで、Devexpress の QuantumGrid VCL コントロールのハイパーリンク列のセルの値を変更しようとしています。列はカスタム列であり、データセットにバインドされていません。
ハイパーリンク列のプロパティは次のように設定されます。
編集:= False;
読み取り専用:= 真;
シングルクリック := 真;
次のコード (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;
上記がセル内のテキストを変更する適切な方法でない場合は、他のアイデアを歓迎します。
ティア。