powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по доступу элементов окна из меню
11 сообщений из 11, страница 1 из 1
Вопрос по доступу элементов окна из меню
    #32580637
Фотография Mix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть окно. У окна есть функция.
Есть меню, которое ссылается на эту функцию.

Каким образом это реализовать, не затрагивая имя самого окна?

Пытался отловить в меню активное окно - вываливает ошибку, что не знает функцию у такого окна.

Может, подскажете?
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32580711
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixПытался отловить в меню активное окно - вываливает ошибку, что не знает функцию у такого окна.

Код вызова покажите пожалуста.

Я, например, в таких случаях пользуюсь не функциями, а пользовательскими событиями с таким вызовом:
Код: plaintext
1.
2.
3.
window wSheet
wSheet=ParentWindow.GetActiveSheet()
if(not(isValid(wSheet))) then wSheet=ParentWindow
wSheet.TriggerEvent('ue_My_Event')

---
С уважением, IKAR
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32580788
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delaetsea eto tak
ot window delaesi inherited w_window
kotoroe imeet tvoiu functiu F,
dalee vse okna stroishi ot etogo okna,
nu i konecino vse okna u teba budut imeti etu functiu ...

teperi v meniu pisesi citoto takoe

w_window wSheet
wSheet = w_frame.GetFirstSheet()
do while IsValid(wSheet)
wSheet.F(...)
loop
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32580795
Фотография Mix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код следующий:

window lw_Sheet
lw_Sheet = w_main.GetActiveSheet ()
if IsValid (lw_Sheet) then
lw_Sheet.wf_save_file(path,file)
end if

если использовать вместо
lw_Sheet имя окна, то всё работает.



Ещё посоветовали это сделать с помощью Send и Post.
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32580869
Фотография Mix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ZUZU!
сделал именно так (как раз надо было inherit юзать).
Буду знать!

Спасибо всем!
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32581069
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый постой способ:
Код: plaintext
parentwindow.TriggerEvent("your_event_name")
Способ, проверяющий наличие функции/события, он позволяет передать параметры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
window lw
ClassDefinition	cd
string ls_args[]
ScriptDefinition sd
integer li_Rc

lw=ParentWindow
cd=lw.ClassDefinition	
ls_args[ 1 ] = <Тип первого аргумента>
//.....
ls_args[n] = <Тип N-ого аргумента>
sd = cd.FindMatchingFunction( "your_event_or_function_name", ls_args)
IF IsValid(sd) THEN
	li_Rc = lw.dynamic your_event_or_function_name (arg1, ..., argN)
END IF
Простой способ, который позволяет передавать параметры:
Код: plaintext
parentwindow.TriggerEvent("your_event_name",  0 , "param_string")
Получить строку, переданную в третьем аргументе функции TriggerEvent, можно так:
Код: plaintext
1.
string PassedString
PassedString = String(Message.LongParm, "address")
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32581441
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие аргументы?! Какой Inherit?!
За написание чего бы то ни было кроме TriggerEvent в clicked меню или кнопки надо убивать на месте без суда и следствия! или в крайнем случае - приговорить к прочтению исходников PFC в полном объеме.
меню и кнопки должны УВЕДОМЛЯТЬ окно или объект о том что юзер что-то нажал и всё! никакой логики, никаких аргументов, никакой обработки.
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32582140
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По большому счёту г-н Зорин абсолютно прав.
Для особо отчаявшихся можно про keyword DYNAMIC в Хелпе почитать...
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32582219
Mykola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласе с Зорин.
Смотрите код PFC - неплохой способ для изучения логики програмирования на PowerBuilder
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32582772
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейКакие аргументы?!
Не вижу ничего страшного, чтобы в событии clicked меню, в конечном счете, написать
Код: plaintext
TriggerEvent("eventName",  0 , "param_string")
На самом деле, этот вызов упрятан в предка, а в пунктах меню пишут только
Код: plaintext
mf_send(this)
Имя события и, опционально, перечень параметров задается в теге меню в виде строки, которая легко может быть разобрана функцией of_GetKeyValue.
...
Рейтинг: 0 / 0
Вопрос по доступу элементов окна из меню
    #32582802
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
А чего вы спорите, как челу нравиться так пусть и действует...
со временем у него сфоримруется свое мнение...
он поймет недостатки и достоинства всех перечисленных методов...
а Филипу по поводу отчаившахся :-)), даже смешно :-)), табишь no comments :-))
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по доступу элементов окна из меню
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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