Frage

Ich muss eine grundlegende WYSIWYG -HTML -Editor -Komponente für C ++ Builder 5 finden, damit Benutzer einen einfachen Text erstellen können, den ich in die vorhandene HTML -Seitenvorlage einfügen werde. Nur eine einfache Unterstützung, um Links zu erstellen, Bilder hinzuzufügen, Header/Fett/Italic zu verwenden.

War es hilfreich?

Lösung

Sie können einen Twebbrowser auf ein Formular fallen lassen und DesignMode wie folgt aktivieren:

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

Nach der Ausführung der obigen Zeile ist die Seite bearbeitet. Sie können zusätzlichen Text eingeben, löschen usw. Wenn Sie die Auswahl fett machen oder Bilder einfügen möchten, müssen Sie einige Schaltflächen hinzufügen, um dies zu programmieren. Das Coole ist, dass Sie dies entweder von Delphi (oder C ++ Builder in Ihrem Fall) tun oder JavaScript auf der Seite hinzufügen können, um sich selbst zu bearbeiten.

Der Inhalt der Seite kann abgerufen werden

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

Denken Sie daran, dass (WebBrowser.Document als IHTMLDocument2) nil sein könnte.


Wie auch immer, ich kann mir vorstellen, dass es Komponenten gibt, die alle Arbeiten für Sie erledigen, was wahrscheinlich ein besserer Weg ist, als das Rad neu zu erfinden.

Andere Tipps

ich würde empfehlen Trichview Aufgrund seiner Weltklasse -Unterstützung und des tiefen Feature -Sets. Obwohl es sich nicht um einen echten "HTML" -Deitor handelt, unterstützt es die Fähigkeit, in HTML zu exportieren und bei Bedarf sogar die entsprechenden CSS -Stile zu generieren. Ich benutze es für den Umgang mit dem E -Mail -Teil unseres Hauptprodukts und es funktioniert sehr gut. Intern ist der Speicher entweder RTF (erweitert, um Bilder besser zu unterstützen) oder als proprietäres Format. Es gibt viele Beispiele für einfache Redakteure, die leicht Ihren Anforderungen entsprechen.

Im C ++ - Builder wäre es so etwas:

(WB ist ein 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();
        }
}
//---------------------------------------------------------------------------

http://www.balsa.com/

liefert einen kostenlosen Satz von EmbeddedWebBrowser Komponenten mit einer Bearbeitungsdesignerkomponente, mit der Sie mit dem verknüpft sind EmbeddedBrowser Fenster zum Steuerungsmodus steuern und die Steuerung in Datei speichern, Links, Bilder usw. einfügen ...

Scheint gut zu funktionieren!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top