मैं Google मानचित्र दिखाने के लिए एक TWebBrowser का उपयोग करता हूं। समस्या यह है कि यह मुख्य यूई धागा को ब्लॉक करता है जबकि यह नक्शा लोड करता है। क्या नक्शा को एक अलग थ्रेड में अपडेट करना संभव है?एक अलग धागे में TWebBrowser अद्यतन करें?
संपादित करें: RRUZ आप सही हैं TWebBrowser को URL के लिए async लोडिंग है। लेकिन मैं समस्या पाया कारण है कि यह ब्लॉक कॉल:
if WaitWhileProcessing and (MapQueryResult.Count > 0) then
Result := MapQueryResult[0] as TMapQuery;
और विधि:
function TMapItemCollection.WaitWhileProcessing: Boolean;
var
vMaxSleepCnt: Integer;
begin
Result := True;
vMaxSleepCnt := 0;
while Processing or Loading do
begin
inc(vMaxSleepCnt);
Application.ProcessMessages;
Sleep(100);
if vMaxSleepCnt = 100 then
begin
Result := False;
Break;
end;
end;
end;
तो यह तय करने के लिए इस कोड को पुनर्संशोधित किया जाना चाहिए लगता है। लेकिन यह इस सवाल का दायरा नहीं है।
क्या आप सुनिश्चित हैं कि मानचित्र लोड होने पर जीयूआई फ्रीज कौन सा है? क्योंकि TWebBrowser असीमित रूप से कार्य करता है। क्या आप नक्शा लोड करने के लिए उपयोग कर रहे कोड को दिखा सकते हैं? – RRUZ
क्या आपने इसे www.bsalsa.com से TEmbeddedWB के साथ आजमाया है? इसमें पहले से ही एक समाधान हो सकता है, और इसे स्विच करने के लिए बहुत आसान हो सकता है और एसिंक लोड काम कर रहा है। –
आरआरयूजेड और वॉरेनपी दोनों के सुझावों के लिए धन्यवाद। आरआरयूजेड सही है कि यह पहले से ही TWebBrowser में लोड हो रहा है। तो मेरे मामले में कारण कुछ और है। मुझे जांच करनी है क्योंकि कोड बल्कि जटिल है ... –