//mouse多选事件
procedure Tpick_picture_win.cxGrid1DBTableView1DragOver(Sender: TObject; Source: TObject; X: Integer; Y: Integer; State: TDragState; var Accept: Boolean);
procedure SwapInt(var A, B: integer);
var
tmp: Integer;
begin
tmp := a;
a := b;
b := tmp;
end;
var
AHitTest: TcxCustomGridHitTest;//TcxCustomGridHitTest;
i, IndexStart, IndexEnd: integer;
begin
if cxGrid1DBTableView1.DragMode <> dmAutomatic then
Exit;
if cxGrid1DBTableView1.OptionsSelection.MultiSelect = False then
Exit;
cxGrid1DBTableView1.BeginUpdate;
AHitTest := cxGrid1DBTableView1.GetHitTest(X, Y);
// AHitTest := (Sender as TcxGridSite).GridView.ViewInfo.GetHitTest(X, Y);
if AHitTest is TcxGridRecordHitTest then
begin
IndexStart := cxGrid1DBTableView1.Controller.FocusedRecord.Index;
IndexEnd := TcxGridRecordHitTest(AHitTest).GridRecord.Index;
cxGrid1DBTableView1.Controller.ClearSelection;
if IndexEnd < IndexStart then
SwapInt(IndexStart, IndexEnd);
for i := IndexStart to IndexEnd do
cxGrid1DBTableView1.ViewData.Records[i].Selected := True;
end;
cxGrid1DBTableView1.EndUpdate;
end;
//调用
with cxGrid1DBTableView1.DataController do
begin
selcount:=Controller.SelectedRecordCount;
for k:=0 to selcount-1 do
begin
j:=GetSelectedRowIndex(k);
Controller.FocusedRecordIndex:=j;
if flist.IndexOf( dataset.fieldbyname('cpbh').asstring)>-1 then
begin
atable.first;
while not atable.eof do
begin
if atable.fieldbyname(sametext).asstring=dataset.fieldbyname('cpbh').asstring then
begin
atable.Delete;
break;
end
else
atable.next;
end;
end;
atable.Append;
for i:=0 to sourcetitlelist.count-1 do
begin
if destlist.strings[i]='无' then continue;
if pos('图片',sourcetitlelist.Strings[i])=0 then
atable.fieldbyname( destlist.strings[i]).asstring := dataset.fieldbyname(sourcezdlist.strings[i]).asstring
else
begin
if dataset.fieldbyname(sourcezdlist.strings[i]).asstring<>'' then
begin
mys:=Tmemorystream.Create;
TBlobField(dataset.fieldbyname(sourcezdlist.strings[i])).SaveToStream(mys);
mys.Position:=0;
TBlobField(atable.fieldbyname(destlist.strings[i])).LoadFromStream(mys);
//showmessage('1');
mys.Free;
end;
end;
end;
atable.post;
//dataset.next;
end;
end;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。