OSDN Git Service

検索ダイアログを出す時のブラウザのbusy処理を追加
authorh677 <h677>
Mon, 11 Sep 2006 15:56:45 +0000 (15:56 +0000)
committerh677 <h677>
Mon, 11 Sep 2006 15:56:45 +0000 (15:56 +0000)
BrowserRecord.pas

index 1dfb236..5a9d456 100644 (file)
@@ -162,20 +162,34 @@ var
        PtrGUID: PGUID;
 begin
        if (Self.Browser <> nil) and (Self.Browser.Document <> nil) then begin
+               //\83u\83\89\83E\83U\82ª\83f\81[\83^\82Ì\93Ç\82Ý\8d\9e\82Ý\92\86\82Ì\8e\9e\82Í\93Ç\82Ý\8d\9e\82Ý\82ð\91Ò\82Â
+               while (Self.Browser.ReadyState <> READYSTATE_COMPLETE) and
+                                       (Self.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
+                       Sleep(1);
+                       Application.ProcessMessages;
+               end;
+        vaIn  := 0;
+        vaOut := 0;
                New(PtrGUID);
                PtrGUID^ := CGID_WebBrowser;
-               try
-                       Self.Browser.Document.QueryInterface(IOleCommandTarget, CmdTarget);
-                       if CmdTarget <> nil then begin
-                               try
-                                       CmdTarget.Exec(PtrGUID, HTMLID_FIND, 0, vaIn, vaOut);
-                               finally
-                                       CmdTarget._Release;
-                               end;
-                       end;
-               except
-               end;
-               Dispose(PtrGUID);
+        try
+               try
+                       if Self.Browser.Document
+                    .QueryInterface(IOleCommandTarget, CmdTarget)
+                    = S_OK then begin
+                           if CmdTarget <> nil then begin
+                                   try
+                                           CmdTarget.Exec(PtrGUID, HTMLID_FIND, 0, vaIn, vaOut);
+                                       finally
+                                               CmdTarget._Release;
+                                       end;
+                               end;
+                end;
+                   except
+                   end;
+        finally
+               Dispose(PtrGUID);
+        end;
        end;
 end;