程序在执行exporttext.ADOTable1.Open;这行时出错,抛了一个“Project test.exe raised exception class EvarinatInvalidOpError with message'Invalid variant operation'”,兄弟郁闷了呀,这是哪的错呀?小弟急等,请各位大虾帮忙!
procedure TForm1.g1Click(Sender: TObject);
var exportText: TFrame1;
dataModule:TDataModule1;
//align:TAlign;
begin
if not( preFrame=nil ) then preFrame.Free;
exportText := TFrame1.Create(self);
exportText.Align := alClient;
exporttext.Parent := Form1.Panel1;
dataModule:= TDataModule1.Create(self);
//exportText.ADOTable1.Refresh;
exporttext.ADOTable1.Open;
preFrame := exportText;
end;
procedure TForm1.g1Click(Sender: TObject);
var exportText: TFrame1;
dataModule:TDataModule1;
//align:TAlign;
begin
if not( preFrame=nil ) then preFrame.Free;
exportText := TFrame1.Create(self);
exportText.Align := alClient;
exporttext.Parent := Form1.Panel1;
dataModule:= TDataModule1.Create(self);
//exportText.ADOTable1.Refresh;
exporttext.ADOTable1.Open;
preFrame := exportText;
end;
try
....create(nil)
finally
....free;
end;
if not( preFrame=nil ) then preFrame.Free;
首先,最好设在TForm1的Create或Active中设preFrame:=nil
另外,preFrame.Free;后不会自动变为nil,所以第二次click时,会再次调用preFrame.Free;
所以要改为
if not( preFrame=nil ) then
begin
preFrame.Free;
preFrame:=nil;
end;