powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как сделать Override для функции?
8 сообщений из 8, страница 1 из 1
Как сделать Override для функции?
    #36956573
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, коллеги!
Я к вам с сабжем.
Есть приложение для работы с БД. Экзешник, набор pbd-шек, набор pbl-ек. Исходников нет.
PowerBuilder 6.5 build 1326
Опытным путем установленно, что интересующая меня форма - суть Userobject uo_edit на нем лежат DataWindow dw и MultiLineEdit mle . В окне есть несколько Computed Field-ов, имитирующих кнопки. При нажати на эти "кнопки" выполняеются определенные действия, например, вызывается функция
Код: plaintext
f_action_history ( res string as_result, ref string type_sid ) returns boolean
objet browser говорит, что она public

Все это хозяйство упрятано в разные pbd-шки, uo_edit в одной, f_action_history в другой, dw в третей.
Можно ли как-то перекрыть эту самую функцию, чтобы в as_result оказывалось не то, что задумали разработчики, а то что нужно мне?
Что у меня получилось...
Создал в pbl uo_edit1 унаследованный от исходного. Через Function painter нарисовал свою функцию с таким же названием, но сохраненную в pbl. В скрипте для uo_edit1 на событие oe_buttonclicked повесил такой код
Код: plaintext
1.
2.
3.
4.
string as_result, type_sid
type_sid = "90000000019376385"
b = f_action_history(as_result, type_sid)
MessageBox("MessageBox", as_result)
В сообщении вижу старый текст и по поведению программы, он тоже старый. Как мне добиться чтобы в as_result был новый, нужный мне, текст?
P.S. Хелп читал, но нужного не нашел.
P.P.S. Форум читал, но нужного не нашел.
...
Рейтинг: 0 / 0
Как сделать Override для функции?
    #36956638
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас какая-то каша. Если есть pbl'ки, то есть исходники (это и есть исходники), соответственно есть где-то определение функции f_action_history. Почему нельзя просто зайти в функцию и поменять код возврата?
...
Рейтинг: 0 / 0
Как сделать Override для функции?
    #36956666
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
15.11.2010 12:04, Guf пишет:

> Можно ли как-то перекрыть эту самую функцию

Нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как сделать Override для функции?
    #36956703
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,

Да, не понятно выразился. Разработчики системы оставили некоторое пространство для маневров, чтобы можно было создавать дополнительные отчеты формы и т.д. Но ядро системы упрятано в pbd.
Получается, что я как администратор системы на стороне клиента, имею право и знаю как добавить новый функционал, не обращаясь к разработчикам (в рамках опрерделенных разрабами методологий).
Я могу добавлять новые датавиндоу в pbl заносить их имена в нужные системные таблицы (системные с точки зрения Аладдина, а не системные самого скуля). Они подхватываются и ву-аля - новый отчет.
Но потребавалось большее...
Здесь я пылся заити со стороны SQL, но это околзался тупиковый путь. Теперь ищу варианты на стороне клиета.
...
Рейтинг: 0 / 0
Как сделать Override для функции?
    #36956733
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000,

Жаль.

Другой вопрос. Могу ли я перекрыть событие нажатия на левой педалю мыши на компьютед филд в датавиндоу?
То что я написал в первом посте менябы устроило, если не одно НО. Сначала происходят действия заложенные разработчиками, а уже потом я вижу свой мессаджбокс. А так чтоб наобот, не знаю как. То что наследоваться от датавиндоу нельзя, это понятно.
...
Рейтинг: 0 / 0
Как сделать Override для функции?
    #36956734
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guf,

Ссылка битая.
Какая будет подхватываться функция зависит от того в каком порядке подключаются библиотеки к проекту, ну и сперва ищется в той библиотеке из которой она вызывается (но в этом я сомневаюсь, а проверять лень :) ) Поищите по форуму или поэксперементируйте сами. Я к таким трюками не прибегаю.
...
Рейтинг: 0 / 0
Как сделать Override для функции?
    #36956792
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,

не битая

Локшин МаркКакая будет подхватываться функция зависит от того в каком порядке подключаются библиотеки к проекту
Чёрт! Я знаю это. Я был уверен, что так и есть у меня! Я ошибся. Проверю работоспособность чуть позже.
Локшин МаркЯ к таким трюками не прибегаю.
Не мы такие, жизнь такая (с)
Спасибо!
...
Рейтинг: 0 / 0
Как сделать Override для функции?
    #36956865
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,

Да! Это оно !!! Спасибо еще раз!!!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как сделать Override для функции?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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