Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Не нашел на форуме и до сих пор не понял по хелпу как читать/писать свойства ActiveX. Подскажите плиз, я в Forms недавно (из Delphi): Вставляю на канву ActiveX - компонент. В моем случае это компонент Tidestone Formula One (Для меня это самое удобное средство для Excel - отчетности, но На его месте мог быть другой). Вопрос: Как повесить на кнопку простое действие: ActiveX_Имя.Свойство := ЧегоНибудь; ??? Хелп говорит 2 способа добраться до его свойств: 1. To set and get ActiveX control properties using bind variable syntax: Use bind variable syntax to assign or retrieve property values. For example, :item('block_name.item_name').ocx.server_name.property, where block_name is the name of the data block, item_name is the name of the ActiveX control, server_name is the name of the ActiveX server, property is the name of the ActiveX property being accessed. /* Setting an ActiveX control property using bind variable syntax */ :item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition:= :item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition + 1; 2./* Getting an ActiveX control property using get accessor */ tblname varchar2; tblname := table_pkg.TableName(:item('Oblk.Oitm').interface); table_pkg is the name of the program unit created from the OLE Importer. TableName is the name of the property accessor. Oblk is the name of the block and Oitm is the name of the item. В первом способе мне не ясно чего такое :item - это переменная? Объявлять? Пример? Во втором - все тот же item и где найти этот самый млин "unit created from the OLE Importer"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 16:19 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Не нашел на форуме и до сих пор не понял по хелпу как читать/писать свойства ActiveX. Подскажите плиз, я в Forms недавно (из Delphi): Вставляю на канву ActiveX - компонент. В моем случае это компонент Tidestone Formula One (Для меня это самое удобное средство для Excel - отчетности, но На его месте мог быть другой). Вопрос: Как повесить на кнопку простое действие: ActiveX_Имя.Свойство := ЧегоНибудь; ??? Хелп говорит 2 способа добраться до его свойств: 1. To set and get ActiveX control properties using bind variable syntax: Use bind variable syntax to assign or retrieve property values. For example, :item('block_name.item_name').ocx.server_name.property, where block_name is the name of the data block, item_name is the name of the ActiveX control, server_name is the name of the ActiveX server, property is the name of the ActiveX property being accessed. /* Setting an ActiveX control property using bind variable syntax */ :item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition:= :item('ActXitem').OCX.Spindial.spindialctrl.1.Needleposition + 1; 2./* Getting an ActiveX control property using get accessor */ tblname varchar2; tblname := table_pkg.TableName(:item('Oblk.Oitm').interface); table_pkg is the name of the program unit created from the OLE Importer. TableName is the name of the property accessor. Oblk is the name of the block and Oitm is the name of the item. В первом способе мне не ясно чего такое :item - это переменная? Объявлять? Пример? Во втором - все тот же item и где найти этот самый млин "unit created from the OLE Importer"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 16:29 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Какая версия Forms? Второй способ для понимания и разбора проще. Для работы со свойствами объекта необходимо импортировать в форму интерфейсные пакеты для данного ActiveX item (меню Program\OLE Importer) Импортировать будет проще, если воспользоваться следующим алгоритмом встраивания объекта. Создаешь контейнер, в его свойствах указываешь OLE Class (MSMAPI.MAPIMessages.1, MSComctlLib.ProgCtrl.2 например), потом, воспользовавшись контекстым меню, выполняешь "Insert Object" -> Create Control. После этого можно импортировать пакеты. Достоинства этого метода проверены на практике. Указав сначала класс, потом не будет проблем с выбором объекта и пакетов. Списки, как правило, содержат по 1 или 2 значения, соотнесенных с классом. Пакеты содержат список констант, процедуры и функции для работы со свойствами и методами ActiveX элемента. Разбирать трудно, но можно. Для получения указателя на объект можно воспользоваться функцией Get_Interface_Pointer или конструкцией :item('demo.mapi').interface, что идентично. Напоследок пример кода для управления Microsoft Progress Bar: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 17:09 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Счас попробую :) у меня: Forms [32 Bit] Version 6.0.8.11.3 (Production) Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production With the OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0 - Production Oracle Toolkit Version 6.0.5.35.0 (Production) PL/SQL Version 8.0.6.0.0 (Production) Oracle Procedure Builder V6.0.8.14.0 Build #652 - Production PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 17:30 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
не выходит.. :( * Жму на Forms OCX / insert object Выбираю Microsoft Progress Bar, вставляю. * у созданного ActiveX компонента захожу в свойство OLE CLASS выбираю MSComctlLib.ProgCtrl.2 (?) * захожу Program / Import Ole Library Interfaces, импортирую MSComctlLib.ProgCtrl.2 в Program Units появился юнит MSComctlLib, в котором можно найти "SUBTYPE IProgressBar IS OleObj;" *копирую и запускаю код Declare Ole_Object OleObj := :item('demo.pb').interface; Begin For i in 1..100 Loop dbms_lock.sleep(1); MSComctlLib_IProgressBar.Value(Ole_Object, i); end loop; End; и наблюдаю "MSComctlLib_IProgressBar.value must be declared" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 17:57 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
В целом все правильно. Правда, сначала нужно указать OLE Class, а потом встроить объект. Но при корректном выполнении это сути не меняет, просто упрощает жизнь. При импортировании методов не надо снимать курсор с OLE-контейнера, тогда будет правильно идентифицирован соответствующий набор пакетов. Забыл указать, что пакетов (Methods Packages) при импортировании может быть несколько. Для MSComctlLib.ProgCtrl.2 их порядка 25 штук. Нужно с помощью Ctrl+Mouse Click выбрать нужные. Для Progress Bar это пакет IProgressBar. Тогда он успешно встроиться, и его можно будет наблюдать в секции Program Units Навигатора формы. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 18:08 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Sergey_Evdokimov* захожу Program / Import Ole Library Interfaces, импортирую MSComctlLib.ProgCtrl.2 Галочкие все поставил,какие только можно? :=). На Progress Bar'е не пробывал, но обычно появляется несколько пакетов. Напримерно отдельный пакет с константами. Скорее всего, какие-то галочки (импортировать методы, константы и т.д.) не поставил. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2005, 18:53 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
сам не пробовал но может это поможет http://asktom.oracle.com/pls/ask/f?p=4950:8:16508596897347741749::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:436019780473 или еще у Тома посматри http://asktom.oracle.com/pls/ask/f?p=4950:1: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 05:37 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Пакет с константами импортируется всегда. А вот пакет с методами нужно сначала выбрать конкретный в списке методов (при этом нужно, чтобы стояла галка либо в поле "Methods", либо в поле "Properties"). После этого он встроится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 09:29 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Пакет с методами - понятно. Progress Bar так и не заработал - ругается на объявления пакета. Ну и ладно. Компонент который я хотел вставить - Formula one Workbook Forms скушал на ура. Новая проблема - в дизайн-тайме в ОЛЕ-контейнер вставлен мой ActiveX, в рантайме там пусто и вываливается ошибка: FRM-41344: OLE object not defined for %s in the current record. Cause: An empty OLE container is defined. Action: Define an OLE object to reside in the OLE container. Level: 20 Type: Error В хелпе ничего интересного не нашел - кроме: ActiveX controls should only be added to single record blocks. To create a single-record block, set the Number of Records Displayed block property to 1, or set the the Number of Items Displayed property (for the ActiveX control container)to 1. Выставил этот самый Number of Items Displayed в единичку - та же история... Чего делать? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 09:38 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Возможно, что ошибка FRM-40735 появляется в следующем случае, описанном на Metalink'e Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 10:27 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
to Tolmachov Dmitiry: Почта чего-то накрылась... Компонент, который я пытаюсь засунуть в Forms называется Tidestone Formula One ver.6.1. Его можно найти на Tidestone.com или могу выслать вечером из дома. Это очень удобный Excel - совместимый ActiveX, который я широко использовал в своих проектах на Дельфи. После перехода на Forms появилось желание попробовать использовать его дальше. И пришли плиз форму с примером Progress Bar - у меня не получилось. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 10:56 |
|
||
|
OCX (activeX) в Oracle Forms??!!
|
|||
|---|---|---|---|
|
#18+
Насчет прислать.... млин... чуть позже я кину адрес... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 10:57 |
|
||
|
|

start [/forum/topic.php?fid=51&msg=33319184&tid=1879351]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 376ms |

| 0 / 0 |
