Posted by Johan 14205 on January 03, 2008
In Reply to Re: Webbrowser and modal dialog boxes posted by Hard Style on
January 01, 2008
: 1. I believe that the dialog box is part of the web page confirmation of data change
as it is certainly not part of my coding.
: 2. The dialog has only the two buttons YES or NO so a button click will be needed.
Look at the HTML code of the web page that displays the "confirmation dialog". You wrote that there are two buttons on it, so they probably are part of a web-"form". Somewhere between the web page HTML codes and there is something like this:
<input type="submit" name="..." value="Yes"> <input type="submit" name="..." value="No">
The text after VALUE= is what's displayed on top of the webpage-form-button. If there is only 1 webform on the page, and if there is only 1 button with the text "YES" (or "Yes" or "yes), your Delphi code has to find this element and simulate a click on it. An example of the source code:
uses ... MSHTML;
procedure TForm1.ClickYes;
var
Doc: IHTMLDocument2;
WebForm: IHTMLFormElement;
FormElements: OleVariant;
i: integer;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
if Assigned(Doc) then begin
WebForm := Doc.Forms.Item(0,'') as IHTMLFormElement;
FormElements := WebForm.Elements;
// Search for element with value equal to "Yes" (or "YES" or "yes")
for i := 0 to FormElements.Length - 1 do begin
if (Uppercase(FormElements.Item(i).Value) = 'YES') then begin
// click on that element
FormElements.Item(i).Click;
break;
end;
end;
end
else
ShowMessage('Error: no document loaded');
end;
Please let me know your results, if not OK then I can try to improve it :)
Good luck!
Johan
Related articles
Follow Ups
Post a Followup
DelphiLand Club members: enter your Membership password.
Guests can get a Forum Guest password by subscribing to the DelphiLand Newsletter.