Я использую TWebBrowser для отображения карты Google. Проблема в том, что он блокирует основной поток ui, пока он загружает карту. Возможно ли обновить карту в отдельном потоке?
Изменить: RRUZ вы правы. TWebBrowser имеет асинхронную загрузку для URL-адреса. Но я нашел проблему, почему она блокирует Вызов:
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;
Итак, кажется, что это исправить, код должен быть реорганизован. Но это не вопрос для этого вопроса.