小白求解
程序是DELPHI做的一个界面输入数据,然后调用ANSYS进行有限元分析
问题是这样的,前面页面一个radiogroup组件,选择分析的类型,同时在数据文件中生成一个总体参数,以供ANSYS中调用radiogroup的代码是这样的
procedure TForm5.Button1Click(Sender: TObject);
var
  tempstring:string;
  stringlist:Tstringlist;
begin
  stringlist:=Tstringlist.Create;  if radiogroup1.ItemIndex=0 then
  begin
  tempstring:='1';              
  stringlist.Add(tempstring);
  stringlist.SaveToFile(dangqianwenjianjia+'\data\'+'job17.dat');     //存储供ANSYS分析中用到的某总体参数
  Form6.show;
  end
  else if radiogroup1.ItemIndex=1 then
  begin
  tempstring:='2';
  stringlist.Add(tempstring);
  stringlist.SaveToFile(dangqianwenjianjia+'\data\'+'job17.dat');
  Form7.show;
  end
  else if radiogroup1.ItemIndex=2 then
  begin
  tempstring:='3';
  stringlist.Add(tempstring);
  stringlist.SaveToFile(dangqianwenjianjia+'\data\'+'job17.dat');
  Form8.show;
  end
  else if radiogroup1.ItemIndex=3 then
  begin
  tempstring:='4';
  stringlist.Add(tempstring);
  stringlist.SaveToFile(dangqianwenjianjia+'\data\'+'job17.dat');
  Form9.show;
  end
end;
选择其中的一项分析类型,输入参数
奇怪的是选择前两项没有问题,但是选择后面两项的时候却提示“至少一个参数没有被指定值”
后面FORM的代码,其实这个应该没问题,因为前两项选择就不会出问题,而这四个页面的代码几乎一样
procedure TForm8.FormCreate(Sender: TObject);
begin
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+mylujing+';Persist Security Info=False';
adoquery1.Connection:=adoconnection1;
ADOConnection1.LoginPrompt:=false;adoquery1.Close;
adoquery1.SQL.Clear;
ADOQuery1.sql.add('select * from 分层参数 where id="1"');
ADOQuery1.Active:=true;
edit1.Text:=trim(adoquery1.fieldbyname('板长').AsString);
edit2.Text:=trim(adoquery1.fieldbyname('板宽').AsString);
edit3.Text:=trim(adoquery1.fieldbyname('分层中心X坐标').AsString);
edit4.Text:=trim(adoquery1.fieldbyname('分层中心Y坐标').AsString);
edit5.Text:=trim(adoquery1.fieldbyname('分层半径').AsString);
end;procedure TForm8.Button1Click(Sender: TObject);
begin
adoquery1.Connection:=adoconnection1;
ADOConnection1.LoginPrompt:=false;adoquery1.Close;
adoquery1.SQL.Clear;
ADOQuery1.sql.add('update 含孔参数 set 板长=:a,板宽=:b,分层中心X坐标=:c,分层中心Y坐标=:d,分层半径=:e where id="1"');
adoquery1.Parameters.ParamByName('a').Value:=trim(edit1.Text);
adoquery1.Parameters.ParamByName('b').Value:=trim(edit2.Text);
adoquery1.Parameters.ParamByName('c').Value:=trim(edit3.Text);
adoquery1.Parameters.ParamByName('d').Value:=trim(edit4.Text);
adoquery1.Parameters.ParamByName('e').Value:=trim(edit5.Text);
ADOQuery1.execsql;adoquery1.Close;
end;