我有些遺傳代碼,打開IE瀏覽器,我有一些麻煩OLEOBJECT,這裏是我有:德爾福訪問來自2級不同的線程
IEUnit.pas(沒有形式)有LoadIE和OpenIE
程序OpenIE從單獨的線程調用,它看起來像這樣
procedure OpenIE(URL: OleVariant; FieldValues: string = '');
var ie : IWebBrowser2; // <-- This should become "global" variable for the IEUnit
begin
ie := CreateOleObject('InternetExplorer.Application') as IWebBrowser2;
ie.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
ShowWindow(ie.HWND, SW_SHOWMAXIMIZED);
ie.Visible := true;
...
end;
我想有「全局」,即變量的單位和寫LoadIE程序是這樣的:
LoadIE應該FORMCREATE(主線程)被稱爲
它應該只是打造「全球」,即對象
ie := CreateOleObject('InternetExplorer.Application') as IWebBrowser2;
所以OpenIE功能並不需要創建它,只是使用它(目的是以加快速度)
所以問題是如何從2個不同的線程訪問相同的OLE對象,一個創建對象,另一個使用它。
當我寫的代碼,不帶螺紋的照顧我得到一個錯誤
異常類EOleSysError有消息
「叫這是整理爲不同的線程接口的應用」我應該怎麼做,照顧線程(我沒有線程經驗,一些閱讀和視頻鏈接是受歡迎的)。
在此先感謝
謝謝大家,我可能會嘗試從同一個線程中找到一種方法 – Milan