webbroswer中怎样以流的方式实现图文混排(在线等待...) ( 积分: 100 )

  • 主题发起人 主题发起人 zhrrqy
  • 开始时间 开始时间
to:satanmonkey,我要份,我的信箱:aimeoo@263.net!
刚才打开.net编辑的时候,用spy++看了下,它的设计窗口就是个webbrowser!
 
在webBroswer中不用产生临时文件,就可以直接显示数据库中的文本和图片。比如:员工姓名、照片等。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不产生临时文件怎么做!先保存为临时文件嘛,然后再把生成的网页载入WebBrowser中!TBlobField(Yourfield.FieldByName('pic')).SaveToFile(TempPicName);
除此,查了些资料 说可以实现个IE协议(嵌入式协议).在内存中,webbrowser访问时直接送给浏览器,仍在研究中....
 
嵌入式协议在这里http://www.euromind.com/iedelphi/app.htm
上面那个代码用的就是
 
我正是用到嵌入式协议,在Oncontent事件中处理加载流的问题。但一直都没能达到想要实现的效果。自己也在努力寻求解决办法。谢谢大家的参与,希望能找到答案。
 
还有一个更有趣的方法,在自己的系统中做一个支持脚本语言的WEBSERVER!
然后让WebBrowser访问WEBSERVER
 
to:狂风123
你的办法是不是需要作成虚拟web服务器?能说得详细一点吗?
我原来看过有人提到virtwebShower控件。但缺少文件安装不成功,
所以看不到他的实现原理。
 
还有这么多功能,看来我洛后了
 
正想做一个这样的东西,学习一下!
 
大家多提点意见!本人实在想不出来了
 
自由界面和报表的完美解决方案!
http://www.anylib.com
 
这里的高手越来越少了.哎
 
procedure THandShake.CreateHTML();
var
HTML:String;
begin
HTML:='<table width="100%" style="font-size:9pt;border:1px solid #808080;background-color:#FFFFCE;padding:2px;Scolor:'+SysTextColor+';margin-top:2px;margin-bottom:5px;filter: alpha(opacity=80);"><tr><td>';
ImageID:='Image_'+BaseID;
HTML:=HTML+'<img id="'+ImageID+'" src="'+ResPath+'/Images/Video.gif'+'" align="texttop"> ';
.....
InsertHTML(ChatingForm,ChatingForm.MsgContent,HTML);
end;

//----------------------{插入HTML代码至WebBrowser中}-----------
procedure InsertHTML(ChatingForm:TForm;IE:TWebbrowser;HTML:String);
var
DoC: IHTMLDocument2;
begin
Doc := IE.Document as IHTMLDocument2;
Doc.body.innerHTML:=Doc.body.innerHTML+HTML;

sendMessage(GetWindow(GetWindow(IE.Handle,GW_CHILD),GW_CHILD), WM_VSCROLL, SB_BOTTOM, 0); //发送到底消息
sendMessage(GetWindow(GetWindow(IE.Handle,GW_CHILD),GW_CHILD), WM_VSCROLL, SB_BOTTOM, 0); //发送到底消息
sendMessage(GetWindow(GetWindow(IE.Handle,GW_CHILD),GW_CHILD), WM_VSCROLL, SB_BOTTOM, 0); //发送到底消息

if ChatingForm<>nil then
begin
with ChatingForm do
begin
if (not Focused) and (GetForegroundWindow<>Handle) and ((not Pushed and not Visible) or (Pushed and Visible)) and (not DontPlaySound) then
begin
PlayEventSound(MsgSound);
FocusForm(ChatingForm);
end;
end
end;
end;
大概就这个意思。图片也一样可以这样插进去
 
多人接受答案了。
 
后退
顶部