两个DBGrid显示同一数据源!
在程序中,获取了一个DBGrid1的数据源:如DS := DBGrid1.DataSource.DataSet;,,正确,,,运行也正常,,但我要是再加一个DBGrid2,让DBGrid2的DataSource.DataSet:=DS;则出现错误!不能正常显示,程序发生错误。具体如下:
DS := DBGrid1.DataSource.DataSet;
Form2.DataSource1.DataSet:=DS;
Form2.DBGrid2.DataSource:=DataSource1;//放一个DataSource1
DBGrid1中可以正常显示。但DBGrid2就会出现错误,不能正常显示。
如果我把它修改下如下:
procedure Test();stdcall;
begin
U:=TForm2.Create(nil);
try
U.DataSource1.DataSet:=DataSet;
U.ShowModal;
finally
U.Free;
end;
end;
再在Form2.Show中放:
procedure TForm2.FormShow(Sender: TObject);
begin
dbgrid1.DataSource:=DataSource1;
end;
改下上面这段,就会不完全显示数据,而且一下子就自己退出程序(无任何提示)!
求救啊~!
[解决办法]
procedure Test();stdcall;
begin
ds.DataSet:= DBGrid1.DataSource.DataSet;
U:=TForm2.Create(nil);
try
U.DataSource1.DataSet:=ds.DataSet;
U.ShowModal;
finally
U.Free;
end;
这样就行了。。
[解决办法]
你还发了2次这个提问,修改好的发到你邮箱了
采用clone方法就可以,不能直接=赋值过去的