2008-12-31 9 views
5

के लिए एचटीएमएल संपादक मुझे सी ++ बिल्डर 5 के लिए मूल WYSIWYG HTML संपादक घटक खोजने की आवश्यकता है ताकि उपयोगकर्ताओं को कुछ सरल टेक्स्ट बनाने के लिए अनुमति मिल सके जो मैं मौजूदा HTML पृष्ठ टेम्पलेट में पेस्ट करूंगा। लिंक बनाने, छवियों को जोड़ने, हेडर/बोल्ड/इटैलिक का उपयोग करने के लिए बस एक साधारण समर्थन।सीबीयूल्डर/डेल्फी

उत्तर

7

आप इस पर एक फार्म पर एक TWebBrowser ड्रॉप कर सकते हैं और सक्षम designmode, इस तरह:

// Delphi code.. 
(WebBrowser1.Document as IHTMLDocument2).designMode := 'on'; 

उपरोक्त पंक्ति को क्रियान्वित करने के बाद, पृष्ठ संपादित किया जा सकेगा। आप अतिरिक्त टेक्स्ट, डिलीट इत्यादि टाइप कर सकते हैं। यदि आप चयन बोल्ड करना चाहते हैं या छवियों को सम्मिलित करना चाहते हैं, तो आपको प्रोग्राम में कुछ बटन जोड़ना होगा। अच्छी बात यह है कि आप या तो डेल्फी (या अपने मामले में सी ++ बिल्डर) से ऐसा कर सकते हैं या आप स्वयं को संपादित करने के लिए पृष्ठ पर जावास्क्रिप्ट जोड़ सकते हैं।

पेज की सामग्री से

(WebBrowser.Document as IHTMLDocument2).body.innerHTML; 

पुनः प्राप्त किया जा सकता है याद रखें कि (WebBrowser.Document IHTMLDocument2 के रूप में) नहीं के बराबर हो सकता है।


वैसे भी, मैं कल्पना कर सकते हैं आप के लिए सभी काम कर कि चारों ओर घटकों देखते हैं, जो शायद पहिया पुनर्रचना से लेने के लिए एक बेहतर रास्ता है।

+0

मैं एक ऐसा घटक होने की उम्मीद कर रहा था जिसमें पहले से ही सभी बटन शामिल हैं - एक बच्चे की तरह कभी भी फ्रंट पेज – Riho

+2

यदि आपके पास RADPHP है, तो 'एम्बरकेडरो \ RadPHP \ 3.0 \ plugins \ 'फ़ोल्डर पर नज़र डालें। आपको 'uHTMLEdit.pas' और' uHTMLEdit.dfm' मिलेगा। यह एक फॉर्म का HTML संपादक है जिसमें मानक वीसीएल के अलावा अन्य निर्भरताएं नहीं हैं। –

+0

@WoutervanNifterick - मैंने इस इकाई की कोशिश की, लेकिन यह सबसे अधिक एचटीएमएल फाइलों के साथ काम नहीं करेगा: http://www.stackoverflow.com/questions/39594393/twebbrowser-crashes-with-some-html-files – Ampere

4

मैं अपने विश्व स्तरीय समर्थन और गहरी सुविधा सेट के कारण TRichView की अनुशंसा करता हूं। हालांकि यह एक वास्तविक "एचटीएमएल" संपादक नहीं है, यह एचटीएमएल को निर्यात करने की क्षमता का समर्थन करता है, यहां तक ​​कि यदि आवश्यक हो तो उपयुक्त सीएसएस शैलियों को भी उत्पन्न करता है। मैं इसे अपने मुख्य उत्पाद के ईमेल हिस्से को संभालने के लिए उपयोग करता हूं और यह बहुत अच्छी तरह से काम करता है। आंतरिक रूप से भंडारण या तो आरटीएफ (छवियों को बेहतर समर्थन करने के लिए बढ़ाया जाता है), या मालिकाना प्रारूप के रूप में होता है। एक साधारण संपादकों के बहुत सारे उदाहरण हैं जो आपकी आवश्यकताओं को आसानी से पूरा करेंगे।

+0

मैंने लगभग 10 वर्षों तक TRichView का उपयोग किया है। यह अच्छा है, लेकिन एक साधारण संपादक के लिए अधिक हो सकता है। एक कमी यह है कि यह अभी तक छवियों के संरेखण संभाल नहीं है। हम सर्गेई पर वर्षों से काम करने की कोशिश कर रहे हैं। यह हमेशा रहा है ... अगले संस्करण। (शायद यह टिप्पणी उसे अंडा कर देगा)। – lkessler

1
सी ++ बिल्डर में

, यह कुछ इस तरह होगा:

(पश्चिम बंगाल एक 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(); 
     } 
} 
//--------------------------------------------------------------------------- 
1

http://www.bsalsa.com/

एक डिजाइनर संपादित घटक साथ EmbeddedWebBrowser घटकों के एक नि: शुल्क सेट की आपूर्ति कि आप डिजाइन मोड को नियंत्रित करने के लिए EmbeddedBrowser विंडो से लिंक करते हैं और संपादन नियंत्रण फ़ाइल में सहेजते हैं, लिंक, छवियां इत्यादि डालते हैं ...

अच्छी तरह से काम करने लगता है!