請問TWebBrowser如何刪除 |
尚未結案
|
GiGi
一般會員 發表:17 回覆:21 積分:7 註冊:2002-10-19 發送簡訊給我 |
可以自動產生TWebBrowser 但是刪除時 卻有錯誤訊息
用的刪除方法有
.destory
.free
以上兩項方法都會產生錯誤訊息
Project tncar2.exe raised exeception class EAccessViolation with
message 'Access violation at address 772A8C5E in module 'SHLWAPI.dll'. Read of address 00000018'.Process stopped.
Use Step or Run to Continue. 煩請解惑
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
GiGi
一般會員 發表:17 回覆:21 積分:7 註冊:2002-10-19 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
GiGi
一般會員 發表:17 回覆:21 積分:7 註冊:2002-10-19 發送簡訊給我 |
procedure TForm1.anasubdata( att1,att2,att3 : string);
var subadd:string;
begin
web:=TWebBrowser.Create(self);
web.Top:=130*(totalrun mod 5) 20;
web.Left:=75*(totalrun div 5) 20;
web.Width:=75;
web.Height:=75;
web.Align :=alNone;
web.Visible:=true;
TOleControl(web).Name:='gigi' inttostr(totalrun);
TOleControl(web).Parent :=form1;
totalrun:=totalrun 1;
web.OnDocumentComplete:=WebBrowserDocumentComplete;
subadd:='';
if att3='T' then
subadd:='http://www.tncar.com.tw/store/post/Show_Cardata.asp?Carno=' att1 '&Storeno=' att2
else
subadd:='http://www.tncar.com.tw/store/post/Show_Cardata.asp?code=' att1;
web.Navigate(subadd); end; procedure TForm1.WebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
(sender as TWebBrowser).Free;
end; 就是(sender as TWebBrowser).Free;這一行執行時出錯的
錯誤訊息就是上面的訊息
麻煩大大解惑
感激不進
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
//修改如下: unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls; type
TForm1 = class(TForm)
WebBrowser: TWebBrowser;
Button1: TButton;
Button2: TButton;
procedure anasubdata( att1,att2,att3 : string);
procedure WebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
totalrun:integer=5;
//定义
web:TWebBrowser;
implementation {$R *.dfm} procedure TForm1.anasubdata(att1,att2,att3 : string);
var
subadd:string; begin
web:=TWebBrowser.Create(self);
web.Top:=130*(totalrun mod 5)+20;
web.Left:=75*(totalrun div 5)+20;
web.Width:=75;
web.Height:=75;
web.Align :=alNone;
web.Visible:=true;
TOleControl(web).Name:='gigi'+inttostr(totalrun);
TOleControl(web).Parent :=form1;
totalrun:=totalrun+1;
web.OnDocumentComplete:=WebBrowserDocumentComplete;
subadd:='';
if att3='T' then
subadd:='http://www.tncar.com.tw/store/post/Show_Cardata.asp?Carno='+att1+'&Storeno='+att2
else
subadd:='http://www.tncar.com.tw/store/post/Show_Cardata.asp?code='+att1;
web.Navigate(subadd); end; procedure TForm1.WebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
IF WEB<> NIL THEN ( web as TWebBrowser).Free;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
anasubdata('12','13','T');
end; end. 供参考!!! 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
From Help file
Write an OnDocumentComplete event handler to take specific action when a frame or document is fully loaded into the Web browser .For a document without frames, this event occurs once when the document finishes loading. On a document containing multiple frames, this event occurs once for each frame. When the multiple-frame document finishes loading, the Web browser fires the event one final time. 若果你的網頁是有 Frame 的 OnDocumentComplete 會被呼叫數次,頭一次你便 Free 了但程序未完繼續運作時一讀 web 便 AV 了。 可試試 : procedure TForm1.WebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if TWebBrowser(sender).ReadyState = READYSTATE_COMPLETE then
TWebBrowser(Sender).Free;
end; 不過你這樣設定當網頁一下載完成便立即關閉,是使用者不用看的嗎 ?
|
GiGi
一般會員 發表:17 回覆:21 積分:7 註冊:2002-10-19 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
//上此POST的代码,是动态创建多个。
我试验过多次了,很好用的。
这次是就是你想要的方法: unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, Mask, DBCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure anasubdata( att1,att2,att3 : string);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
totalrun:integer=5;
//定义
web:TWebBrowser;
implementation {$R *.dfm} procedure TForm1.anasubdata(att1,att2,att3 : string);
var
subadd:string; begin
web:=TWebBrowser.Create(self);
web.Top:=130*(totalrun mod 5)+20;
web.Left:=75*(totalrun div 5)+20;
web.Width:=75;
web.Height:=75;
web.Align :=alNone;
web.Visible:=true;
TOleControl(web).Name:='gigi'+inttostr(totalrun);
TOleControl(web).Parent :=form1;
totalrun:=totalrun+1;
//去掉
//web.OnDocumentComplete:=WebBrowserDocumentComplete;
subadd:='';
if att3='T' then
subadd:=att1
else
subadd:=att2;
web.Navigate(subadd);
end; procedure TForm1.Button1Click(Sender: TObject);
begin
//单击时发生
IF WEB<> NIL THEN ( web as TWebBrowser).Free;
anasubdata('HTTP://WWW.YAHOO.COM','HTTP://CN.YAHOO.COM','T');
end; end. 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
GiGi
一般會員 發表:17 回覆:21 積分:7 註冊:2002-10-19 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |