CppWebBrowser w trybie edycji

problemy z funkcjonowaniem bibliotek, komponentów itp.

CppWebBrowser w trybie edycji

Nowy postprzez anel » piątek, 22 sierpnia 2008, 09:09

Witam, chciałbym zrobić z CppWebBrowsera edytor WYSWYG jednak nie wiem jak przełączyć go do trybu edycji
W googlach znalazłem taki kod w pascalu jednak niegdy nie uczyłem się pascala i nie moge go zastosować w C++ builderze, oto co znalazłem:
do sekcji Uses dodajemy MSHTML_TLB oraz SHDocVw_TLB. To umożliwi nam edytowanie kontrolki ActiveX. Pierwszą rzeczą, jaką należy zrobić będzie przełączenie WebBrowsera w tryb edycji. Przechodzimy więc do zakładki Events komponentu WebBrowser1 i odnajdujemy event OnDocumentComplete. W nim umieszczamy następujący kod:


{przelaczenie WebBrowser w tryb edycji}
var
CurrentWB: IWebBrowser;
begin
CurrentWB := pDisp as IWebBrowser;
(CurrentWB.Document as IHTMLDocument2).DesignMode := 'On';
end;

Następnym krokiem będzie dodanie procedury odpowiedzialnej za wykonywanie poleceń, a wygląda ona następująco:


procedure ExecuteCommand(Command: string; UI: boolean; Value: OleVariant);
{procedura wykonujaca polecenia w dokumencie}
var
Range: IHTMLTxtRange;
begin
Range :=
(Form1.WebBrowser1.Document as IHTMLDocument2).Selection.CreateRange
as IHTMLTxtRange;
Range.ExecCommand(Command, UI, Value)
end;


Nie wiem co to jest sekcja Uses i co oznacza ten zapis: (CurrentWB.Document as IHTMLDocument2), jeśli by ktoś mógł to przerobić na C++ byłbym bardzo wdzięczny
Pozdrawiam
Avatar użytkownika
anel
 
    NieznanyNieznana

Re: CppWebBrowser w trybie edycji

Nowy postprzez Cyfrowy Baron » piątek, 22 sierpnia 2008, 09:39

Temat kontrolki CppWebBrowser był już tyle razy wałkowany...
Ta kontrolka działa w oparciu o bibliotekę SHDOCVW.DLL z tej samej biblioteki korzysta przeglądarka Internet Explorer, dlatego kontrolka CppWebBrowser może tylko tyle ile przeglądarka IE, a jak wiadomo IE nie ma wbudowanego Edytora, poza ta kontrolka w praktyce może znacznie mniej niż IE, gdyż nie wszystkie jej funkcje są aktywne.
Co do zaprezentowanego kodu w Delphi to jest tam odwołanie nie do kontrolki CppWebBrowser lecz WebBrowser, to nie to samo. W środowisku Borland Developer Studio -> C++ Builder też sa dwie kontrolki, jedna CppWebBrowser i druga WebBrowser. W podanym przez Ciebie kodzie występuje jednak jeszcze obiekt HTMLDocument2 i to w nim odbywa się edycja zawartości WebBrowser a nie w tej kontrolce. Dostrzegam tam również kolejny obiekt HTMLtxRange, tak wiec autor tego kodu korzysta z jakichś dodatkowych niestandardowych lub typowych dla Delphi bibliotek, których w BCB po prostu nie ma.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron