窗体1,窗体2,均有控件Dbgrid1,
窗体3有一过程如下:procedure TtoExcel_w.BitBtn21Click(Sender: TObject);
var
eclApp,WorkBook:olevariant;
xlsFileName:string;
i,j:integer;
begin
if trim(Edit1.text)<>'' then
begin
try
eclApp:=CreateOleObject('Excel.Application');
WorkBook:=CreateOleObject('Excel.Sheet');
except
Application.MessageBox('系统没有安装Microsoft Excel','Microsoft Excel',MB_OK+MB_ICONWarning);
Exit;
end;
try
WorkBook:=eclApp.workbooks.Add;
for i:=0 to DBGrid1.Columns.Count-1 do
begin
....
....
end;问如何让Dbgrid1随窗体调用改变而改变,就是说:当窗体1调用窗体3时,
for i:=0 to DBGrid1.Columns.Count-1 do
变成
for i:=0 to t1.DBGrid1.Columns.Count-1 do当窗体2调用窗体3时,
for i:=0 to DBGrid1.Columns.Count-1 do
变成
for i:=0 to t2.DBGrid1.Columns.Count-1 do
窗体3有一过程如下:procedure TtoExcel_w.BitBtn21Click(Sender: TObject);
var
eclApp,WorkBook:olevariant;
xlsFileName:string;
i,j:integer;
begin
if trim(Edit1.text)<>'' then
begin
try
eclApp:=CreateOleObject('Excel.Application');
WorkBook:=CreateOleObject('Excel.Sheet');
except
Application.MessageBox('系统没有安装Microsoft Excel','Microsoft Excel',MB_OK+MB_ICONWarning);
Exit;
end;
try
WorkBook:=eclApp.workbooks.Add;
for i:=0 to DBGrid1.Columns.Count-1 do
begin
....
....
end;问如何让Dbgrid1随窗体调用改变而改变,就是说:当窗体1调用窗体3时,
for i:=0 to DBGrid1.Columns.Count-1 do
变成
for i:=0 to t1.DBGrid1.Columns.Count-1 do当窗体2调用窗体3时,
for i:=0 to DBGrid1.Columns.Count-1 do
变成
for i:=0 to t2.DBGrid1.Columns.Count-1 do
调用窗体3时设置这个变量的值。 然后在代码里用tmpDBGrid代替相应的t1.DBGrid1 或 t2.DBGrid1
另外,你还可以写一个过程,在过程定义中定义一个TDBGrid的参数,调用时给TDBGrid赋相应的对象名称就可以了