powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Есть ли аналог AddressOf (VB) в PB 9?
9 сообщений из 9, страница 1 из 1
Есть ли аналог AddressOf (VB) в PB 9?
    #37185154
noeser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вот такая вещь на VB:

Код: plaintext
1.
2.
3.
4.
5.
6.
...
obj.ToDoSmth(AddressOf myOutput)
...

Sub myOutput(ByVal val1 As Integer, ByVal val2 As Integer)
...
End Sub

Как это можно написать в PB9?
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37185797
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noeserЕсть вот такая вещь на VB:

Код: plaintext
1.
2.
3.
4.
5.
6.
...
obj.ToDoSmth(AddressOf myOutput)
...

Sub myOutput(ByVal val1 As Integer, ByVal val2 As Integer)
...
End Sub

Как это можно написать в PB9?
В PB нет такой возможности.

Но можно написать на С++ через PBNI обертку.
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37187016
noeser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky, спасибо. Правда, пока PBNI мне мало о чём говорит, но буду разбираться, вроде документацию билдеровскую нашла.
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37188247
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, вам надо из внешней функции вызвать функцию PB, или просто из одной функции PB вызвать другую функцию PB переданную как параметр в нее?

Если второе, то можно обойтись без PBNI, а сделать как это делается в Java:
- создать базовый класс с одним методом с нужными аргументами но без тела (просто return или вообще throw)
- создать наследника от него и переопределить этот метод, где уже выполнить нужные действия
- 1-ю функцию объявить с аргументом типа базового класса
- при вызове этой функции передавать экземпляр наследника
- в функции вызывать для этого аргумента переопределенный метод (т.к. в ПБ все методы виртуальные, то вызовется метод наследника - того, чей экземпляр, даже если сама ссылка имеет тип предка)
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37197230
noeser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyА вообще, вам надо из внешней функции вызвать функцию PB, или просто из одной функции PB вызвать другую функцию PB переданную как параметр в нее?

Если второе, то можно обойтись без PBNI, а сделать как это делается в Java:
- создать базовый класс с одним методом с нужными аргументами но без тела (просто return или вообще throw)
- создать наследника от него и переопределить этот метод, где уже выполнить нужные действия
- 1-ю функцию объявить с аргументом типа базового класса
- при вызове этой функции передавать экземпляр наследника
- в функции вызывать для этого аргумента переопределенный метод (т.к. в ПБ все методы виртуальные, то вызовется метод наследника - того, чей экземпляр, даже если сама ссылка имеет тип предка)

У меня вроде бы первый вариант. Есть подключенный оле-объект и вызывается его функция, а в качестве параметра в эту функцию передаётся функция, написанная в PB.
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37197309
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noeserAnatoly MoskovskyА вообще, вам надо из внешней функции вызвать функцию PB, или просто из одной функции PB вызвать другую функцию PB переданную как параметр в нее?

У меня вроде бы первый вариант. Есть подключенный оле-объект и вызывается его функция, а в качестве параметра в эту функцию передаётся функция, написанная в PB.

Тогда даже не знаю чем вам помочь.
COM и сам по себе не подарок. А тут еще и в связке с PB:)
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37197400
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noeserУ меня вроде бы первый вариант. Есть подключенный оле-объект и вызывается его функция, а в качестве параметра в эту функцию передаётся функция, написанная в PB.
А что мешает разбить это действие на два шага:
1. вызвать "функцию, написанную на РВ" и получить результат;
2. вызвать функцию оле-объекта с параметром ввиде "результата из п.1".
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37197503
Oleg1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
noeserУ меня вроде бы первый вариант. Есть подключенный оле-объект и вызывается его функция, а в качестве параметра в эту функцию передаётся функция, написанная в PB.PBNI или dll. Первое на много проще.
...
Рейтинг: 0 / 0
Есть ли аналог AddressOf (VB) в PB 9?
    #37199347
noeser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AISА что мешает разбить это действие на два шага:
1. вызвать "функцию, написанную на РВ" и получить результат;
2. вызвать функцию оле-объекта с параметром ввиде "результата из п.1".

Не. Так не получится. Чтобы сделать п.1 нужно получить параметры из п.2.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Есть ли аналог AddressOf (VB) в PB 9?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]