16,748
社区成员
发帖
与我相关
我的任务
分享
procedure TfrmFymxsh.cxchckbx1PropertiesEditValueChanged(
Sender: TObject);
var
i: Integer;
begin
inherited;
if cxchckbx1.Checked then //全选
begin
for i := 0 to Grd_mxlbDBTV.ViewData.RowCount-1 do begin
if Grd_mxlbDBTV.ViewData.Rows[i].IsData then
Grd_mxlbDBTV.ViewData.Rows[i].Values[0]:=true;
end;
end
else //反选
begin
for i := 0 to Grd_mxlbDBTV.ViewData.RowCount-1 do begin
if Grd_mxlbDBTV.ViewData.Rows[i].IsData then
Grd_mxlbDBTV.ViewData.Rows[i].Values[0]:=false;
end;
end;
end;
我现在就写成这样了,能选中展开分组下的选择框。但是有个bug,就是对选中的选择框进行操作的时候,提示没有选择 选择框!
procedure TfrmFymxsh.cb_select_allPropertiesEditValueChanged(
Sender: TObject);
begin
inherited;
if cds_mxlb.RecordCount = 0 then
cb_select_all.Checked := false;
cds_mxlb.DisableControls;
if cb_select_all.Checked then //全选
begin
cds_mxlb.First;
while not cds_mxlb.Eof do
begin
cds_mxlb.Edit;
cds_mxlb.FieldByName('select').AsBoolean := true;
cds_mxlb.Post;
cds_mxlb.Next;
end;
end
else
if cb_select_Curr.Checked then //选中当前
begin
cds_mxlb.First;
while not cds_mxlb.Eof do
begin
//如果明显表中的地区编码等于当前选中的分组编码, 则选中
if cds_mxlb.FieldByName('dqbm').AsString = 'aaa' then
begin
cds_mxlb.Edit;
cds_mxlb.FieldByName('select').AsBoolean := true;
cds_mxlb.Post;
end;
cds_mxlb.Next;
end;
end
else //全不选
begin
cds_mxlb.First;
while not cds_mxlb.Eof do
begin
cds_mxlb.Edit;
cds_mxlb.FieldByName('select').AsBoolean := false;
cds_mxlb.Post;
cds_mxlb.Next;
end;
end;
cds_mxlb.EnableControls;
cds_mxlb.First;
end;