程序里使用Twebbrowser嵌一个kindeditor之类的代码

解决方案 »

  1.   

    tms组件里  tms memo里  有 AdvHTMLMemoStyler1 AdvJSMemoStyler1不知道 是不是你要的  自己没实际用过 
      

  2.   

    webbrowser设置成edit模式就可以了
      

  3.   

    tms组件麻烦   我是想自己在webbrowser上做 弄成edit模式  但是问题是怎么弄? 还请楼上指教 谢谢
    这里最好能实现 文字加粗 变色 添加图片等便捷操作 最终可以生成html字符串 给予保存 
      

  4.   

    那你得非常熟悉html语法才行啊。。不要什么都依赖三方控件
      

  5.   

    恩 的确 网络上也找了很多资料 webbrowser是可以自己弄成可以edit的 就是得通过命令什么的
    但是网上资料都不是很全 还请教大家 有没完整的demo简单案例拿来看看即可。
      

  6.   

    使用TWebBrowser控件,然后下载一个ckeditor3.0(这版本我使用感觉很好),按ckeditor匹配好之后,在webbrowser控件中navigate(cke的本地路径),这就打开这个编辑器了。
    另外,你还要涉及到往编辑器里加载HTML代码、取编辑后的HTML代码等,这个给分之后告诉你,或者你自己翻翻ck的文档。另,ck真做得太好了,真正的所见即所得编辑器,假如你从网络上复制一段带image链接的图文过来,它会自动给你下载到编辑器里并显示出来。强烈建议使用。
      

  7.   

    学习了 先谢过大家
    我最好能在TWebBrowser的基础上实现html的编辑 
    这里编辑只要简单的 能插入图片 字体加粗等操作即可。。
    还请大家多多指教 谢谢。。
      

  8.   

    我现在遇到个非常邪门的问题
    (WebBrowser.Document as IHTMLDocument2).body.innerHTML := 'abc';
    以上代码 我直接赋值 会报个内存错误
    如果在代码前面 加个 showmessage('');停顿下 就正常
    这是怎么回事?
    发现TWebBrowser好像不太稳定 有bugs
    我delphi 版本是ex2的。 请教啊。。啊。
      

  9.   

    上面问题已经解决  在(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;
      

  10.   

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

  11.   

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

  12.   

    这个不是bug,在使用Document之前,你得确认它是否建立完全,这个需要判断ReadyState+IsBusy,还有在使用body之前,先判断它是否为nil,这是好习惯。
      

  13.   

    这个问题,你在 Navigate about:blank之后,来个循环,用ProcessMessage()好了,直到ReadyState is busy都之后,再走下面的代码。
      

  14.   

    这个问题倒是解决了 
    代码如下:
      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内容多 有滚动条 点击滚动条 就会这样 
    还请指教 谢谢 。。
      

  15.   

    http://stackoverflow.com/questions/9472265/how-to-debug-division-by-zero-exception-in-internet-explorer好像是IE9的问题
      

  16.   


    在Navigate之前加下面的一个
      Set8087CW(Default8087CW or $3F);
      Set8087CW(Default8087CW or $0004);