100分 求稳定的Delphi HTML编辑器

stephenchern 2012-10-12 09:28:25
100分 求稳定的Delphi HTML编辑器
发现现在delphi是不是落寞了? 怎么都很少人用,论坛里发了几个问题 都没得到完美答案
这里再请教大家下
想用delphi做个html 编辑器 网络上找到一个htmledit的控件 安装在delphi ex2上跑 感觉很不稳定 bugs很多
有没有比较好的这类控件
请教 谢谢。
...全文
715 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
DoDoDTa 2014-06-10
  • 打赏
  • 举报
回复
引用 18 楼 stephenchern 的回复:
问题解决差不多了 但是还有个细节 再请教大家下 我在webbrowser上添加完照片 保存后 打开 滚动滚动条 会报 Floating point division by zero 这个异常 可是我代码中没任何除法运算。。 大家有没遇到过? 请指教。。 这个问题 还是没找到原因 大家有没遇到过 现在奇怪的是 有点击滚动条 急报错 如果界面打开 到里面滚动下 再出来点击滚动条 就正常。
在Navigate之前加下面的一个 Set8087CW(Default8087CW or $3F); Set8087CW(Default8087CW or $0004);
hf20 2012-10-22
  • 打赏
  • 举报
回复
http://stackoverflow.com/questions/9472265/how-to-debug-division-by-zero-exception-in-internet-explorer

好像是IE9的问题
stephenchern 2012-10-22
  • 打赏
  • 举报
回复
这个问题倒是解决了
代码如下:
Application.OnMessage := MessageHandler;
while WebBrowser.Busy do
Application.ProcessMessages;
WebBrowser.Navigate('about:blank');

HTMLDocument2 := WebBrowser.Document as IHTMLDocument2;
if not SameText(HTMLDocument2.designMode, 'on') then
HTMLDocument2.designMode := 'on';

这里感谢楼上的帮助 就是还有个邪门问没解决
我现在发现如果webbrowser内容比较少 就正常 如果内容多 右边有滚动条 这时候进来 点击滚动条
就会报“Floating point division by zero ” 这个错误 而且报完 界面被强制关闭掉 不知道阁下有没遇到这个问题 这里我代码中没有任何除法操作 只要webbrowser内容多 有滚动条 点击滚动条 就会这样
还请指教 谢谢 。。
biganchor 2012-10-19
  • 打赏
  • 举报
回复
这个问题,你在 Navigate about:blank之后,来个循环,用ProcessMessage()好了,直到ReadyState is busy都之后,再走下面的代码。[Quote=引用 15 楼 的回复:]

上面问题已经解决 在(WebBrowser.Document as IHTMLDocument2).body.innerHTML := 'abc'前加
application.processmessage;即可
现在还有个问题
就是html源码给它赋值的时候 第一次页面可以显示 如果赋值再赋一遍 界面就变空白了 不知道为什么 还请指教
代码如下:
procedure TForm1……
[/Quote]
biganchor 2012-10-19
  • 打赏
  • 举报
回复
这个不是bug,在使用Document之前,你得确认它是否建立完全,这个需要判断ReadyState+IsBusy,还有在使用body之前,先判断它是否为nil,这是好习惯。[Quote=引用 14 楼 的回复:]

我现在遇到个非常邪门的问题
(WebBrowser.Document as IHTMLDocument2).body.innerHTML := 'abc';
以上代码 我直接赋值 会报个内存错误
如果在代码前面 加个 showmessage('');停顿下 就正常
这是怎么回事?
发现TWebBrowser好像不太稳定 有bugs
我delphi 版本是ex2的。 请教啊。。啊。。。……
[/Quote]
biganchor 2012-10-19
  • 打赏
  • 举报
回复
解决了吗?开另个贴子我来回答,好让后来者也知道怎样解决。[Quote=引用 18 楼 的回复:]

问题解决差不多了 但是还有个细节 再请教大家下
我在webbrowser上添加完照片 保存后 打开 滚动滚动条 会报 Floating point division by zero 这个异常
可是我代码中没任何除法运算。。 大家有没遇到过? 请指教。。

这个问题 还是没找到原因 大家有没遇到过 现在奇怪的是 有点击滚动条 急报错 如果界面打开 到里面滚动下 再出来点击滚动条 就正……
[/Quote]
stephenchern 2012-10-17
  • 打赏
  • 举报
回复
问题解决差不多了 但是还有个细节 再请教大家下
我在webbrowser上添加完照片 保存后 打开 滚动滚动条 会报 Floating point division by zero 这个异常
可是我代码中没任何除法运算。。 大家有没遇到过? 请指教。。

这个问题 还是没找到原因 大家有没遇到过 现在奇怪的是 有点击滚动条 急报错 如果界面打开 到里面滚动下 再出来点击滚动条 就正常。
stephenchern 2012-10-15
  • 打赏
  • 举报
回复
上面问题已经解决 在(WebBrowser.Document as IHTMLDocument2).body.innerHTML := 'abc'前加
application.processmessage;即可
现在还有个问题
就是html源码给它赋值的时候 第一次页面可以显示 如果赋值再赋一遍 界面就变空白了 不知道为什么 还请指教
代码如下:
procedure TForm1.Button9Click(Sender: TObject);
var
StringStream:TStringStream;
SetNoteStr: string;
begin
SetNoteStr := '<body bgcolor=222222 align=center><br><p align=center><font size=+2 color=#FFFFFF>谷歌 http://www.google.com</font></p>';
SetNoteStr := SetNoteStr + '<br><p align=center><font size=+2 color=#FFFFFF>实现webbrowser控件中显示动态html的程序代码</font></p>';
StringStream := TStringStream.Create(SetNoteStr);
WebBrowser.Navigate('about:blank');
try
StringStream.Position := 0;
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(StringStream));
finally
StringStream.Free;
end;
end;
stephenchern 2012-10-15
  • 打赏
  • 举报
回复
我现在遇到个非常邪门的问题
(WebBrowser.Document as IHTMLDocument2).body.innerHTML := 'abc';
以上代码 我直接赋值 会报个内存错误
如果在代码前面 加个 showmessage('');停顿下 就正常
这是怎么回事?
发现TWebBrowser好像不太稳定 有bugs
我delphi 版本是ex2的。 请教啊。。啊。。。。
山东蓝鸟贵薪 2012-10-15
  • 打赏
  • 举报
回复
有稳定的吗,我也想索取一份
stephenchern 2012-10-15
  • 打赏
  • 举报
回复
学习了 先谢过大家
我最好能在TWebBrowser的基础上实现html的编辑
这里编辑只要简单的 能插入图片 字体加粗等操作即可。。
还请大家多多指教 谢谢。。
stephenchern 2012-10-15
  • 打赏
  • 举报
回复
问题解决差不多了 但是还有个细节 再请教大家下
我在webbrowser上添加完照片 保存后 打开 滚动滚动条 会报 Floating point division by zero 这个异常
可是我代码中没任何除法运算。。 大家有没遇到过? 请指教。。
jjpweb 2012-10-15
  • 打赏
  • 举报
回复
richview。。。。。。。。。。。
lght 2012-10-14
  • 打赏
  • 举报
回复
刚上传了一个简单的例子,现在还没显示。过会你自己到我的资源那里去下。
biganchor 2012-10-14
  • 打赏
  • 举报
回复
使用TWebBrowser控件,然后下载一个ckeditor3.0(这版本我使用感觉很好),按ckeditor匹配好之后,在webbrowser控件中navigate(cke的本地路径),这就打开这个编辑器了。
另外,你还要涉及到往编辑器里加载HTML代码、取编辑后的HTML代码等,这个给分之后告诉你,或者你自己翻翻ck的文档。

另,ck真做得太好了,真正的所见即所得编辑器,假如你从网络上复制一段带image链接的图文过来,它会自动给你下载到编辑器里并显示出来。强烈建议使用。
hsfzxjy 2012-10-14
  • 打赏
  • 举报
回复
太好了,学习下
stephenchern 2012-10-13
  • 打赏
  • 举报
回复
tms组件麻烦 我是想自己在webbrowser上做 弄成edit模式 但是问题是怎么弄? 还请楼上指教 谢谢。。。
这里最好能实现 文字加粗 变色 添加图片等便捷操作 最终可以生成html字符串 给予保存
stephenchern 2012-10-13
  • 打赏
  • 举报
回复
恩 的确 网络上也找了很多资料 webbrowser是可以自己弄成可以edit的 就是得通过命令什么的
但是网上资料都不是很全 还请教大家 有没完整的demo简单案例拿来看看即可。
hsfzxjy 2012-10-13
  • 打赏
  • 举报
回复
那你得非常熟悉html语法才行啊。。不要什么都依赖三方控件
hsfzxjy 2012-10-13
  • 打赏
  • 举报
回复
还能直接插入图片?那就难办了。。
加载更多回复(4)

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧