#86003 - 2002-06-11 02:42 PM
Re: Write to IE using interhtml??
|
Radimus
Moderator
   
Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
|
here is my current IE lib. needless to say most of it doesn't work, the windows get created and get populated, but the event handling, the focus, and such do not work. Most of these functions do not work at all (work in progress) and the rest do not work correctly.
My concept is to create a 'gui' console using IE, and when necessary for user input\popup messages use IE comboboxes, input fields, etc. HTML can 'simulate' many of the functions and appearance of kixforms/kixgui windows, yet doesn't require an extra dll to be distributed.
code:
break on ;$=setconsole("minimize")
$Window = IECreateWindow("This Damn Thing",300,300,640,480)
IEWrite($Window,"hello","Arial","4","#00ff00") IEWrite($Window,"hello1",,"2","#ff0000") IEWrite($Window,"hello2","Courier","5","#0000ff") IEWrite($Window,"hello3")
$b1=IEAddButton($Window,"Button1",10,0,50,25) $b2=IEAddButton($Window,"Button2",70,0,50,25) $b3=IEAddButton($Window,"Button3",130,0,50,25)
? IEInputBox("What is your name?", "Enter your name")
?"pause..." get$k
$window.quit $window = 0 exit 1
;*********************************************************************************************** Function IECreateWindow($title,$left,$top,$width,$height, optional $html) $ie = createobject("internetexplorer.application") $ie.addressbar = 0 $ie.menubar = 0 $ie.toolbar = 0 $ie.statusbar = 0 $ie.top = $top $ie.left = $left $ie.width = $width $ie.height = $height $ie.navigate("about:blank") while $ie.busy and $ie.readystate <> 4 and @error = 0 loop $ie.document.body.scroll = no if $html $ie.document.write('$html') else $ie.document.write('<title>$title</title>') endif $ie.document.body.bgcolor = "threedface" $ie.document.body.border = "1px solid #cccccc" $IECreateWindow = $ie $ie.Visible = 1 while setfocus("$title") <> 0 loop EndFunction
Function IEWrite($Window,$text, optional $font, optional $size, optional $color, optional $Clear) if not $font $font='Verdana, Helvetica, sans-serif' endif if not $size $size='3' endif if not $color $color='#000000' endif if not $bgcolor $bgcolor='#ffffff' endif $HTML = '<font size="$size" FACE="$font" color="$color">$text<br></font>' $window.document.write($HTML) WHILE $window.busy <> 0 AND @ERROR = 0 LOOP EndFunction
Function IEAddButton($Window,$Caption,$Left,$Top,$Width,$Height) dim $Button $Button = $Window.Document.CreateElement("input") $Button.Type = "Button" $Button.Value = $Caption $Button.Style.Position = "Absolute" $Button.Style.PixelTop = $Top $Button.Style.PixelLeft = $Left $Button.Style.PixelWidth = $Width $Button.Style.PixelHeight = $Height $Button = $Window.Document.Body.AppendChild($Button) $IEAddButton = $Button EndFunction
Function IESetBackColor($Window,$Color) $Window.Document.Body.BGColor = $Color EndFunction
Function IEComboBox($Window,$title,$text,$ElementArray)
$html='<HTML><HEAD><TITLE>$title</TITLE></HEAD><BODY><BR>$text<BR> <OBJECT ID="ComboBox" WIDTH=200 HEIGHT=24 CLASSID="CLSID:8BD21D30-EC42-11CE-9E0D-00AA006002F3"> </OBJECT></BODY></HTML> ' $window.document.write('$html') WHILE $window.busy <> 0 AND @ERROR = 0 LOOP
$combobox=IE.document.GetElementById("combobox") for each $element in $ElementArray $=$combobox.additem("$Element") next $combobox.value=$ElementArray[0]
EndFunction
Function IEInputBox($title, Optional $prompt, optional $Ok, optional $Cancel) Dim $click, $html, $Window, $status, $click
If not $prompt $prompt = "Please enter your password." endif If not $ok $ok = "OK" endif If not $Cancel $cancel = "Cancel" endif
$html = ' <html><head><title>$title</title><style> <!---body{ background-color: silver; color: black;font-family: tahoma, arial; font-size: 10pt; margin: 3px "input.tbox { border: lpx black solid;}td { font: 10pt tahoma; }---> </style></head> <body scroll=no > <table align=center> <form name=frm> <tr> <td align=right>$prompt </td> <td colspan=2><input id=input value="" class=tbox></td> </tr> <tr> <td><input id=ok type=button value=" $ok " onclick="frm.status.value=1"> <input type=hidden id=status name=status value=0></td> <td align=right><input id=cancel type=button value=" $Cancel " onclick="frm.status.value=2"></td> </tr> </form> </table></body></html>'
$Window = IECreateWindow($title,100,100,300,130,$html) while $window.busy and $window.readystate <> 4 and @error = 0 loop $window.GetElementById("input").focus $status = $window.GetElementById("status") $click = $window.GetElementById("input") ? "$status $status.value @serror" while @error = 0 and $status.value <> "" select case $status.value = "1" ;Ok was clicked $IEInputBox = $password1.value case $status.value = "2" ;cancel was clicked $IEInputBox = "Cancel" endselect loop ? "$status $status.value @serror" $window.quit $window="" EndFunction
[ 11 June 2002, 19:56: Message edited by: Radimus ]
|
|
Top
|
|
|
|
Moderator: Shawn, ShaneEP, Ruud van Velsen, Arend_, Jochen, Radimus, Glenn Barnas, Allen, Mart
|
0 registered
and 479 anonymous users online.
|
|
|