Tôi cần tìm thành phần soạn thảo HTML WYSIWYG cơ bản cho C++ Builder 5 để cho phép người dùng tạo một số văn bản đơn giản mà tôi sẽ dán vào mẫu trang HTML hiện có. Chỉ cần hỗ trợ đơn giản để tạo liên kết, thêm hình ảnh, sử dụng tiêu đề/in đậm/in nghiêng.Trình soạn thảo HTML cho CBuilder/Delphi
Trả lời
Bạn có thể thả một TWebBrowser trên một hình thức và cho phép designMode vào nó, như thế này:
// Delphi code..
(WebBrowser1.Document as IHTMLDocument2).designMode := 'on';
Sau khi thực hiện các dòng trên, trang đó sẽ được chỉnh sửa. Bạn có thể gõ thêm văn bản, xóa, vv Nếu bạn muốn thực hiện lựa chọn in đậm hoặc chèn hình ảnh, bạn sẽ phải thêm một số nút để chương trình đó. Điều thú vị là bạn có thể làm điều đó hoặc từ Delphi (hoặc C++ builder trong trường hợp của bạn) hoặc bạn có thể thêm javascript trên trang để chỉnh sửa chính nó.
Nội dung của trang có thể được lấy từ
(WebBrowser.Document as IHTMLDocument2).body.innerHTML;
Hãy nhớ rằng (WebBrowser.Document như IHTMLDocument2) có thể là con số không.
Dù sao, tôi có thể tưởng tượng rằng có các thành phần xung quanh làm tất cả công việc cho bạn, đó có thể là tuyến đường tốt hơn để cải tiến bánh xe.
Tôi muốn giới thiệu TRichView do hỗ trợ đẳng cấp thế giới và bộ tính năng sâu. Mặc dù đây không phải là trình soạn thảo "HTML" thực sự nhưng nó hỗ trợ khả năng xuất sang HTML, thậm chí tạo ra các kiểu CSS thích hợp nếu cần. Tôi sử dụng nó để xử lý phần email của sản phẩm chính của chúng tôi và nó hoạt động rất tốt. Lưu trữ nội bộ là RTF (được mở rộng để hỗ trợ hình ảnh tốt hơn) hoặc dưới dạng định dạng độc quyền. Có rất nhiều ví dụ về một trình soạn thảo đơn giản mà sẽ dễ dàng phù hợp với nhu cầu của bạn.
Tôi đã sử dụng TRichView trong gần 10 năm. Nó là tốt, nhưng có thể là quá mức cần thiết cho một trình soạn thảo đơn giản. Sự thiếu hụt một là nó không xử lý sự liên kết của hình ảnh được nêu ra. Chúng tôi đã làm việc trên Sergey trong nhiều năm cố gắng để có được anh ta để thêm nó. Luôn luôn là ... phiên bản tiếp theo. (Có lẽ bình luận này sẽ đánh trứng anh ta). – lkessler
trong C++ Builder, nó sẽ là một cái gì đó như thế này:
(wb là một TCppWebBrowser)
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "mshtml.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SHDocVw_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnNavigateAndEditClick(TObject *Sender)
{
wb->Navigate((WideString)"www.google.com");
while (wb->Busy)
Application->ProcessMessages();
if (wb->Document)
{
IHTMLDocument2 *html;
wb->Document->QueryInterface<IHTMLDocument2>(&html);
html->put_designMode(L"On");
html->Release();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnInsertImageClick(TObject *Sender)
{
if (wb->Document)
{
IHTMLDocument2 *html;
wb->Document->QueryInterface<IHTMLDocument2>(&html);
VARIANT var;
VARIANT_BOOL receive;
html->execCommand(L"InsertImage",true,var, &receive);
html->Release();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnGetHtmlClick(TObject *Sender)
{
if (wb->Document)
{
IHTMLDocument2 *html;
wb->Document->QueryInterface<IHTMLDocument2>(&html);
IHTMLElement *pElement;
html->get_body(&pElement);
pElement->get_parentElement(&pElement);
wchar_t *tmp;
pElement->get_outerHTML(&tmp);
Memo1->Lines->Text = tmp;
pElement->Release();
html->Release();
}
}
//---------------------------------------------------------------------------
cung cấp một tập miễn EmbeddedWebBrowser
thành phần với một thành phần Chỉnh sửa thiết kế mà bạn liên kết với cửa sổ EmbeddedBrowser
để kiểm soát chế độ thiết kế và có quyền kiểm soát chỉnh sửa lưu vào tệp, chèn liên kết, hình ảnh, v.v ...
dường như hoạt động tốt!
- 1. HTML + CSS + Trình soạn thảo Javascript
- 2. Trình soạn thảo HTML WYSIWYG Java
- 3. Cần một trình soạn thảo html nhỏ, nhẹ cho web
- 4. Trình soạn thảo SQL nhẹ cho Eclipse
- 5. Trình soạn thảo PHP cho Ubuntu
- 6. Trình soạn thảo văn bản cho hội
- 7. Trình soạn thảo CoffeeScript cho MacOS
- 8. SlickGrid chọn trình soạn thảo
- 9. Trình soạn thảo email HTML trong ứng dụng Windows Forms
- 10. Chương trình soạn thảo S3DB
- 11. Trình soạn thảo XSD Eclipse
- 12. C# API cho trình soạn thảo phương trình MS Word
- 13. Trình soạn thảo MVCĐối với bên trong Một trình soạn thảo khácCho
- 14. Visual Studio 2010 - Trình soạn thảo C# cồng kềnh hơn trình soạn thảo VB.NET
- 15. Plugin jQuery cho Trình soạn thảo HTML với Màu Cú pháp
- 16. Trình soạn thảo XML dựa trên web
- 17. Cấu trúc dữ liệu cho trình soạn thảo văn bản
- 18. Có trình soạn thảo JSP tốt cho Eclipse không?
- 19. Có trình soạn thảo K ++ Kode tốt cho Klingon không?
- 20. Trình soạn thảo văn bản với Scripting ... cho Linux
- 21. trình soạn thảo có hỗ trợ tốt cho fortran
- 22. Trình soạn thảo XML tốt nhất cho Eclipse
- 23. Có trình soạn thảo đánh dấu reStructuredText cho eclipse
- 24. Trình soạn thảo Asp.Net MVC 3 cho thuộc tính động
- 25. Trình soạn thảo tách trong nhật thực
- 26. Rails tốt 3 Trình soạn thảo WYSIWYG?
- 27. Cách tải trình soạn thảo ace
- 28. Trình soạn thảo MathJax thời gian thực
- 29. Trình soạn thảo WYSIWYG nhỏ, tùy chỉnh
- 30. Lớp trình soạn thảo XML iOS
Tôi đã hy vọng có một thành phần đã có sẵn tất cả các nút - đôi khi giống như một bé Frontpage – Riho
Nếu bạn có RADPHP, hãy xem thư mục 'Embarcadero \ RadPHP \ 3.0 \ plugins \'. Bạn sẽ tìm thấy 'uHTMLEdit.pas' và' uHTMLEdit.dfm'. Đó là một trình soạn thảo HTML một dạng không có các phụ thuộc khác với VCL tiêu chuẩn. –
@WoutervanNifterick - Tôi đã thử đơn vị này, nhưng nó sẽ không hoạt động với các tệp html MOST: http://www.stackoverflow.com/questions/39594393/twebbrowser-crashes-with-some-html-files – Ampere