我也是这么想的,可是不知为何我的程序偏偏运行一会儿,
内存就不断的减少,一直不明白是哪里出错。
跟踪到最后发现的是调用了你写的过程,putdata
因为我是填写注册信息所以要填的数据较多,我不断的循环数据库进行以下这个过程,
我用else这样应该没问题吧!而且使用全局变量,在本过程循环应该也没问题吧!
function PutData1(www:twebbrowser):boolean;
var spDisp: IDispatch; j: integer;S2,ls1,ls2,ls3,ls4,ls5 : string; IDoc1: IHTMLDocument2;
iELC : IHTMLElementCollection ; HtmlInputEle : IHTMLInputElement;
HtmlInputEle1:IHTMLselectelement;HtmlInputEle2:IHtmlTextAreaElement;
begin
with wjyx_for do
begin
try
if www <> nil then
begin
www.Document.QueryInterface(IHTMLDocument2,iDoc1);
if iDoc1 <> nil then
begin
ielc:=idoc1.Get_all;
for j:=0 to ielc.length-1 do
begin
Application.ProcessMessages;
spDisp := ielc.item(J, 0);
if SUCCEEDED(spDisp.QueryInterface(IHTMLselectelement,HtmlInputEle1))then //下拉框
begin
if HtmlInputEle1.name=ls1 then HtmlInputEle1.value :=sea_comb(w_v_sf,v_sf) //省份
else if HtmlInputEle1.name=ls2 then HtmlInputEle1.value :=sea_comb(w_v_sshy,fb_lb) //所属行业
else if HtmlInputEle1.name=ls5 then HtmlInputEle1.value :=sea_comb(w_v_gj,v_yh_gj); //国家
end
else
if SUCCEEDED(spDisp.QueryInterface(IHtmlTextAreaElement,HtmlInputEle2))then //内容
begin
if HtmlInputEle2.name=w_xxnr then HtmlInputEle2.value :=xxnr.text; //内容
end
else
if SUCCEEDED(spDisp.QueryInterface(IHTMLInputElement ,HtmlInputEle))then //文本框
with HtmlInputEle do
begin
S2:=Type_; // password
S2:=UpperCase(S2);
if (StrComp(PChar(S2),'TEXT')=0)or (StrComp(PChar(S2),'PASSWORD')=0) then
begin
if HtmlInputEle.name=w_titl then HtmlInputEle.value :=title.text //标题
else if HtmlInputEle.name=w_gsmc then HtmlInputEle.value :=gsmc //公司名称
else if HtmlInputEle.name=w_mm then HtmlInputEle.value :=wj_mm //密码
else if HtmlInputEle.name=w_yb then HtmlInputEle.value :=yb //邮编
else if HtmlInputEle.name=w_gj then HtmlInputEle.value :=v_yh_gj; //国家
end
else // or (StrComp(PChar(S2),'RADIO')=0 )
if (StrComp(PChar(S2),'CHECKBOX')=0) then
begin
checked := True;
end;
end;
end; //END FOR
end;
result:=true;
end
else result:=false;
except
result:=false;
end;
end;
end;