大致思路是这样的:在DXdbgrid表格中能否实现当点击或光标所在行,符合条件不能被修改,移到其他不符合的则能修改。
procedure Tsvr_sp_jh.dxGridCustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);begin
inherited;
if ANode.HasChildren then Exit;
if ASelected then
begin
Value := ANode.Values[dxGrid.FindColumnByFieldName('diaoru_shengxiao').Index];
if not VarIsNull(Value) then
begin
if Value =true then
begin
符合条件后,当鼠标点击的这行或是光标所在的行能被整行选中,不能编辑、修改等
end
else 能被修改或编辑
end;
end
end;
procedure Tsvr_sp_jh.dxGridCustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);begin
inherited;
if ANode.HasChildren then Exit;
if ASelected then
begin
Value := ANode.Values[dxGrid.FindColumnByFieldName('diaoru_shengxiao').Index];
if not VarIsNull(Value) then
begin
if Value =true then
begin
符合条件后,当鼠标点击的这行或是光标所在的行能被整行选中,不能编辑、修改等
end
else 能被修改或编辑
end;
end
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货