乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      delphi html編輯器,如何轉換簡單的富文本HTML標記在Delphi?(How to Convert Simple Ric

       獨孤求財 2022-07-21 發(fā)布于廣東

      你可能會說,現在有很多在StackOverflow的這個討論,但大部分都是比我需要的,多為其他語言更加復雜。

      我有,我有一個“幫助”表,用于填充使用該數據庫的動態(tài)網站的幫助頁面的代碼MySQL的遠程數據庫。

      我決定做一個Delphi應用程序來管理,而不是由網站本身做更多的速度和安全性網站。

      我想提出一個TRichEdit做出幫助文本并使用簡單的事情像對齊,粗體,斜體和下劃線樣式。 我不想用圖片和字體。

      如何挑選豐富樣式的文本,并將其轉換為HTML把我的BLOB字段在遠程數據庫中,然后再轉換成豐富的文本,如果我想再次編輯呢 ?

      Answer 1:

      想這并沒有給出準確的結果,許多不同的解決方案后,我的靈感來自于該解決方案: 轉換RTF到HTML和HTML為RTF 。

      這個想法是, TWebBrowser控制(設計/編輯模式)可以處理并轉換成正確的富文本格式,當它被從剪貼板粘貼。

      uses SHDocVw, MSHTML;

      function ClipboardToHTML(AParent: TWinControl): WideString;

      var

      wb: TWebBrowser;

      function WaitDocumentReady: Boolean;

      var

      StartTime: DWORD;

      begin

      StartTime := GetTickCount;

      while wb.ReadyState <> READYSTATE_COMPLETE do

      begin

      Application.HandleMessage;

      if GetTickCount >= StartTime + 2000 then // time-out of max 2 sec

      begin

      Result := False; // time-out

      Exit;

      end;

      end;

      Result := True;

      end;

      begin

      Result := '';

      wb := TWebBrowser.Create(nil);

      try

      wb.Silent := True;

      wb.Width := 0;

      wb.Height := 0;

      wb.Visible := False;

      TWinControl(wb).Parent := AParent;

      wb.HandleNeeded;

      if wb.HandleAllocated then

      begin

      wb.Navigate('about:blank');

      (wb.Document as IHTMLDocument2).designMode := 'on';

      if WaitDocumentReady then

      begin

      (wb.Document as IHTMLDocument2).execCommand('Paste', False, 0);

      Result := (wb.Document as IHTMLDocument2).body.innerHTML;

      end;

      end;

      finally

      wb.Free;

      end;

      end;

      procedure TForm1.Button1Click(Sender: TObject);

      begin

      RichEdit1.SelectAll;

      RichEdit1.CopyToClipboard;

      ShowMessage(ClipboardToHTML(Self));

      end;

      Answer 2:

      如果你真的想使用生成RTF內容TRichEdit ,那么你應該保存它產生沿著轉換的HTML原生RTF。 如果您使用的唯一原因TRichEdit是讓你可以有簡單的格式化功能,那么你可能會更好過使用生成本地HTML內容的HTML編輯控件。

      不管你走哪條路,最好是存儲用戶編輯內容的原始格式,并根據需要為其他格式進行轉換(而不是將其轉換兩個方向)。

      如果你使用TRichEdit ,那么你可以很容易地流進出控制的RTF內容,但我建議TJvRichEdit過TRichEdit :

      procedure GetRTFData(MS: TMemoryStream; RTF: TRichEdit);

      begin

      MS.Clear;

      RTF.Lines.SaveToStream(MS);

      MS.Position := 0;

      end;

      procedure SetRTFData(MS: TMemoryStream; RTF: TRichEdit);

      begin

      MS.Position := 0;

      RTF.StreamFormat := sfRichText;

      RTF.Lines.LoadFromStream(MS);

      end;

      手動轉換RTF到HTML不是一件容易的事。 有Unicode字符的考慮,字體樣式,字體規(guī)范,段落格式,編號列表,特殊的HTML字符,和這么多。 即使你只需要支持簡單的格式,用戶經常使用會使轉換頭痛等功能 - 如從復制的MSWord內容,并與所有種類的格式和字體樣式粘貼到您的應用程序。

      JvRichEditToHtml做一份體面的工作轉換RTF到HTML,但我們最終編寫我們自己的轉換單元,因為我們做了很多更與RTF比簡單的格式。 JvRichEditToHtml應該很容易處理,只要你所描述什么是用戶不通過復制/粘貼介紹復雜的內容,或者使用鍵盤快捷鍵的內容(例如,子彈= Ctrl + Shift + L,縮進= CTRL + M格式化等)。

      還有德爾福幾個不錯的HTML編輯控件,如果你想繞過在RTF創(chuàng)作和轉換為HTML的復雜性:

      谷歌搜索結果::德爾福,HTML,編輯器,組件

      HTML編輯器的CBuilder /德爾福

      所見即所得的HTML編輯器組件德爾福

      對于HTML編輯器VCL控制的追求

      堆棧溢出::德爾福,HTML,編輯器,組件

      德爾福與HTML / CSS界面

      (和其他許多!)

      我們使用TRichView由于其廣泛的能力。 它可以加載/創(chuàng)建RTF,出口HTML。 它不是免費的但是。 如果您正在尋找免費的東西, TJvRichView和JvRichEditToHtml都是不錯的選擇。

      文章來源: How to Convert Simple RichText to HTML tags in Delphi?

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多