Tôi sử dụng TWebBrowser để hiển thị bản đồ Google. Vấn đề là nó chặn luồng ui chính trong khi nó tải bản đồ. Có thể cập nhật bản đồ trong một chủ đề riêng biệt không?Cập nhật TWebBrowser trong một chuỗi riêng biệt?
Chỉnh sửa: RRUZ bạn đúng TWebBrowser có tải không đồng bộ cho URL. Nhưng tôi thấy vấn đề tại sao nó khối Cuộc gọi:
if WaitWhileProcessing and (MapQueryResult.Count > 0) then
Result := MapQueryResult[0] as TMapQuery;
và phương pháp:
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;
Vì vậy, có vẻ như để sửa lỗi này mã nên được refactored. Nhưng đây không phải là phạm vi cho câu hỏi này.
Bạn có chắc chắn giao diện đồ họa trong khi bản đồ được tải không? vì TWebBrowser hoạt động không đồng bộ. bạn có thể hiển thị mã mà bạn đang sử dụng để tải bản đồ không? – RRUZ
Bạn đã thử với TEmbeddedWB từ www.bsalsa.com chưa? Nó có thể có một giải pháp đã được, và khá dễ dàng để chuyển sang nó và nhận được tải async làm việc. –
Cảm ơn các đề xuất cả RRUZ và WarrenP. RRUZ đúng là nó đã tải không đồng bộ trong TWebBrowser. Vì vậy, trong trường hợp của tôi lý do là cái gì khác. Tôi phải điều tra vì mã khá phức tạp ... –