Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.048 c
3-1121671971
TAN_K
2005-07-18 11:32
2005.08.28
QuicRep - форматирование вычисляемого поля


5-1094451679
Victor
2004-09-06 10:21
2005.08.28
Гибкие линии


1-1122997202
Инна
2005-08-02 19:40
2005.08.28
Два меню на одной форме


10-1080215297
Max_Fin
2004-03-25 14:48
2005.08.28
DCOM и LPSTR


4-1117006096
msd
2005-05-25 11:28
2005.08.28
COM порт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский