Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 DHTML edit control & PowerBuilder  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Никто не использовал DHTML edit control в PowerBuilder'е, а то у меня не совсем получается. Что именно не получается: вызвать функцию которой надо передавать параметр - любую. Говорит error calling external object function
и все. Присвоить значения свойствам, вызвать функцию без аргументов - без проблем. Особенно интересует вызов ExecCommand(...)
Может кто примеры использования этого самого control'а в PowerBuilder'е где-нибудь видел, а то я что-то сам ничего и не нашел по этому поводу.
8 янв 04, 09:39    [483659]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
В старых версиях PowerBuilder были какие-то проблемы с типом данных COM Variant.
Может в этом причина?
Возможно в последних версиях это устранено.
Какая версия PB?

Можно попробовать передавать аргументы типа Variant через переменные типа Any, которые заполнять перед вызовом.
8 янв 04, 13:20    [483990]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
>В старых версиях PowerBuilder были какие-то проблемы с типом данных COM
>Variant.
>Может в этом причина?
_Любые_ _переменные_ допустим вызов вот такой функции не проходит
OLEObject.DocumentHTML(string DocumentHTML)
>Возможно в последних версиях это устранено.
>Какая версия PB?
Любая которая у меня есть в наличие от 6 до 9 - поведение одинаково.

>Можно попробовать передавать аргументы типа Variant через переменные
>типа Any, которые заполнять перед вызовом.
А каким образом это будет выглядеть на PowerBuilder'е?
В object browser'е он отображает эти типы как any, но как их использовать мне что-то не совсем понятно.
8 янв 04, 14:26    [484120]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
автор
>В старых версиях PowerBuilder были какие-то проблемы с типом данных COM
>Variant.
>Может в этом причина?
_Любые_ _переменные_ допустим вызов вот такой функции не проходит
OLEObject.DocumentHTML(string DocumentHTML)

ole_1.object.DocumentHTML = '<b>Test</b>' 


ты лучше приведи свой пример кода, который у тебя не работает, так быстрее будет
8 янв 04, 15:58    [484371]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
>ole_1.object.DocumentHTML = '<b>Test</b>'
Эээ... Так то работает, а же писал, что со свойствами проблем нет.

>ты лучше приведи свой пример кода, который у тебя не работает, так
>быстрее будет
Я же написал - вызов любой функции, ну хорошо - вот пример:
string s
s = "<b>Test</b>"
ole_1.object.DocumentHTML(s)

Сообщение об ошибке - error calling external object function documenthtml at line 3 in clicked event of object cb_1 of w_main_mdi.

Также не работает LoadURL и вообще, все функции с параметрами. Без параметров - все работают.

PS. В MSDN написано, что DHTML edit control должен работать с PowerBuilder'ом, правда пример они не приложили :)
8 янв 04, 16:19    [484416]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
аргумент LoadURL должен быть в UNICODE
ole_1.Object.LoadURL(ToUnicode("http://ya.ru/"))


в COM обычно уникодные строки используются
8 янв 04, 17:29    [484572]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Мистика какая-то.
Теперь работает ole_1.Object.LoadURL(ToUnicode("http://ya.ru/"))
и даже так работает ole_1.Object.LoadURL("http://ya.ru/")
правда в PB9.0. Пойду дома попробую (у меня там другой билд 9.0 стоит).

В PB 6.0, правда, не работает.

Но как все-таки с ExecCommand работать?
Может кто подскажет, где описаны cmdID, а то я никак не найду? И как с типом any там работать?
8 янв 04, 18:00    [484635]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Похоже на баг ...
8 янв 04, 18:17    [484660]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Может кто подскажет, где описаны cmdID, а то я никак не найду?

%PlatformSDK%/Include/DHtmled.js ?

// DHTML Editing Component Constants for JavaScript
// Copyright 1998-1999 Microsoft Corporation. All rights reserved.
//

//
// Command IDs
//
DECMD_BOLD = 5000
DECMD_COPY = 5002
DECMD_CUT = 5003
DECMD_DELETE = 5004
DECMD_DELETECELLS = 5005
DECMD_DELETECOLS = 5006
DECMD_DELETEROWS = 5007
DECMD_FINDTEXT = 5008
DECMD_FONT = 5009
DECMD_GETBACKCOLOR = 5010
DECMD_GETBLOCKFMT = 5011
DECMD_GETBLOCKFMTNAMES = 5012
DECMD_GETFONTNAME = 5013
DECMD_GETFONTSIZE = 5014
DECMD_GETFORECOLOR = 5015
DECMD_HYPERLINK = 5016
DECMD_IMAGE = 5017
DECMD_INDENT = 5018
DECMD_INSERTCELL = 5019
DECMD_INSERTCOL = 5020
DECMD_INSERTROW = 5021
DECMD_INSERTTABLE = 5022
DECMD_ITALIC = 5023
DECMD_JUSTIFYCENTER = 5024
DECMD_JUSTIFYLEFT = 5025
DECMD_JUSTIFYRIGHT = 5026
DECMD_LOCK_ELEMENT = 5027
DECMD_MAKE_ABSOLUTE = 5028
DECMD_MERGECELLS = 5029
DECMD_ORDERLIST = 5030
DECMD_OUTDENT = 5031
DECMD_PASTE = 5032
DECMD_REDO = 5033
DECMD_REMOVEFORMAT = 5034
DECMD_SELECTALL = 5035
DECMD_SEND_BACKWARD = 5036
DECMD_BRING_FORWARD = 5037
DECMD_SEND_BELOW_TEXT = 5038
DECMD_BRING_ABOVE_TEXT = 5039
DECMD_SEND_TO_BACK = 5040
DECMD_BRING_TO_FRONT = 5041
DECMD_SETBACKCOLOR = 5042
DECMD_SETBLOCKFMT = 5043
DECMD_SETFONTNAME = 5044
DECMD_SETFONTSIZE = 5045
DECMD_SETFORECOLOR = 5046
DECMD_SPLITCELL = 5047
DECMD_UNDERLINE = 5048
DECMD_UNDO = 5049
DECMD_UNLINK = 5050
DECMD_UNORDERLIST = 5051
DECMD_PROPERTIES = 5052

//
// Enums
//

// OLECMDEXECOPT
OLECMDEXECOPT_DODEFAULT = 0
OLECMDEXECOPT_PROMPTUSER = 1
OLECMDEXECOPT_DONTPROMPTUSER = 2

// DHTMLEDITCMDF
DECMDF_NOTSUPPORTED = 0
DECMDF_DISABLED = 1
DECMDF_ENABLED = 3
DECMDF_LATCHED = 7
DECMDF_NINCHED = 11

// DHTMLEDITAPPEARANCE
DEAPPEARANCE_FLAT = 0
DEAPPEARANCE_3D = 1

// OLE_TRISTATE
OLE_TRISTATE_UNCHECKED = 0
OLE_TRISTATE_CHECKED = 1
OLE_TRISTATE_GRAY = 2

8 янв 04, 18:31    [484677]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Я как то работал на проекте, где активно использовался DHTML edit control. Кончилось на том что для него wrapper Delphi написали, поскольку РВ только late binding могёт. Но тем не менее большинство методов работало и без wrapperа...
У меня всё это есть, могу отрыть...
8 янв 04, 20:12    [484776]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Хм, и дома на PB 9 работает, прямо не знаю. Может в скрипте где ошибся, когда тестировал.
А на PB 6 не работает.
Еще интересная вещь выяснилась. Создаем документ в Word'е на русском, сохраняем в HTML. Все codepage там по путю проставленны и т.д. Из IE - нормальный документ, из PB 9 через DHTML - нормальный, а в PB6 через DHTML - кракозябы из латинского шрифта.

to Филипп: Конечно, интересно было бы посмотреть, тем более что я материала по сопряжению PowerBuilder vs DHTML фактически не нашел.
8 янв 04, 21:59    [484834]     Ответить | Цитировать Сообщить модератору
 Re: DHTML edit control & PowerBuilder  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
to Anatoly Moskovsky спасибо за наводку на cmdID, а то я их обыскался.
8 янв 04, 22:00    [484836]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить