Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.28;
Скачать: CL | DM;

Вниз

HTML Редактор от Microsoft   Найти похожие ветки 

 
Admido   (2005-08-01 13:48) [40]

Алексей Петухов   (31.07.05 17:03) [37]
"А где можно почитать описание метода Doc.execCommand и его параметров?"
Вот тут:

http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/ifaces/document2/execcommand.asp


 
Admido   (2005-08-01 13:55) [41]

И еще тут сможете найти много полезной информации:
http://groups.yahoo.com/group/delphi-webbrowser/messages/

Алексей Петухов   (26.07.05 18:48) [17]
...
"3) Вообще задача - элементарный редактор HTML с минимальным набором опций."
...

Amido   (27.07.05 15:55) [33]
...
"...Если же захотите "копать глубже" - примите мои соболезнования =DDD"
...

По моему, вы начинаете "копать глубже" =D


 
Admido   (2005-08-01 14:30) [42]

Алексей Петухов   (31.07.05 18:17) [38]
"1. Как получить атрибуты шрифта выделенного текста?"

"Копайте" в эту сторону:

var
 selectionRange: IHtmlTxtRange;
 iHTelement: IHTMLElement;
 font: WideString;
begin
 //...
 selectionRange := IHtmlTxtRange(iHTDocument2.selection.createRange);
 try
   font := selectionRange.parentElement.style.fontFamily;
   //... etc etc...
 except        
   Exit;
 end;


"2. Как сделать обработчик события OnMouseUp?"
"3. Как определить редактировалось ли содержание (onChange)?"
Мне вас уже жалко =] Идите на http://www.euromind.com/iedelphi/, смотрите как подключить EditDesigner. У него имеется к примеру "function TForm1.EditDesigner1PreHandleEvent(inEvtDispId: Integer; const pIEventObj: IHTMLEventObj): HRESULT;" таким образом сможете отлавливать события.

И вообще bug"рово это все и документации никакой (только минимум). По всему интернету только вопросы... Тут 2 варианта: или все жадные (денег хотят), или никто не может найти "нормального" решения, т.к. сделано это добро в "стиле микрософт". Всё через ж..пу... буржуи...

К примеру попробуйте сделать визуальный редактор таблиц как в каком-нибудь FrontPage... ёб.. слов не хватает... Если получится - поделитесь впечатлениями и кодом желательно ;)

"4. как определить текущий (под курсором) таг (аналогично DHTMLEdit.DOM.parentWindow.event.srcElement;)"
Также как и в 1. пункте, только:

selectionRange.parentElement.tagName;


 
Алексей Петухов   (2005-08-02 06:23) [43]

Большое спасибо Admido.

Немного расслабился и то-же улыбнулся. :-)
Можно сказать впервые наткнулся на проблему, которую действительно надо решать (очень мало информации и опыт других собирается по крупицам).


 
Алексей Петухов   (2005-08-05 17:30) [44]

Еще один вопросик "в догонку".

Никак не пойму - как побороть сообщение "Этот документ изменился. Сохнанить изменения?"

1)Вот так заполняется wbEditor:TWebBrowser(где s - путь к текстовому файлу "по умолчанию"):

var
 Flags:OleVariant;
 s:string;
begin
.....
wbEditor.Navigate(WideString(s),Flags,Flags,Flags,Flags);
.....


2) затем редактируем текст в компоненте wbEditor:TWebBrowser.

3) потом хотим опять загрузить в него текст "по умолчанию" (как в п.1).

Вот здесь и вылетает вопросец.

Как ибавиться от него?Я подозреваю должен быть метод или свойство (что-то типа DisplayAlerts:=false), но не могу найти ничего подобного. Прошу Посоветуйте по теме.


 
Алексей Петухов   (2005-08-06 19:32) [45]

Помогите с последним вопросом, пожалуйста.


 
Amido ©   (2005-08-08 10:52) [46]

Вот и ответик "в догонку" :)

Сам с етой проблемой столкнулся, а решается она довольно таки просто. Перед открытием документа необходимо просто поставить designMode := "off".


//--- File -> Open
...
var
 HtDocument2: IHTMLDocument2; // global variable
...
procedure TfrmMain.Action1Execute(Sender: TObject);
begin
 if HtDocument2 <> nil then
   HtDocument2.designMode := "off";

 OpenDialog1.InitialDir := ExtractFileDir(ParamStr(0))+"\docs\";
 if OpenDialog1.Execute then
   EmbeddedWB1.Navigate("file://" + OpenDialog1.FileName);
end;


А вот как инициализируется HtDocument2:

procedure TfrmMain.EmbeddedWB1NavigateComplete2(Sender: TObject;
 const pDisp: IDispatch; var URL: OleVariant);
begin
 try
   HtDocument2 := (EmbeddedWB1 as TEmbeddedWB).document as IHTMLDocument2;
 except
   // do nothing
 end;
end;



Страницы: 1 2 вся ветка

Текущий архив: 2005.08.28;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.025 c
14-1123227895
pavel_guzhanov
2005-08-05 11:44
2005.08.28
Книги Тейскейра и Пачеко


4-1120571972
cosinus
2005-07-05 17:59
2005.08.28
Как в глобальном хуке определить кому адресовано отловленное msg?


1-1123172908
Alex77777
2005-08-04 20:28
2005.08.28
Помогите решить задачу


1-1123650757
gma
2005-08-10 09:12
2005.08.28
Проблема с FastReport


1-1123398075
kami
2005-08-07 11:01
2005.08.28
Непонятки с датами файлов