Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Передача структуры / 16 сообщений из 16, страница 1 из 1
02.08.2004, 11:40
    #32631050
Levon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Привет, народ! Есть необходимость предать из одного окна в другое структуру с ключами изменённых записей и собственно значениями для возможности возврата старых значений. Как осуществить такую предачу?
...
Рейтинг: 0 / 0
02.08.2004, 11:48
    #32631082
Сотников
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Лучше для этого использовать пользовательский NVO и передавать через Message
...
Рейтинг: 0 / 0
02.08.2004, 11:49
    #32631085
Александр Спелицин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Через PowerObject
...
Рейтинг: 0 / 0
02.08.2004, 11:58
    #32631113
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Какие окна?
2 sheet-a,sheet и response или как?
Вопрос в том,можно ли по поинтерам пробраться от одного к другому.
Если да,то интересные записи можно без всякой структуры жахнуть из одного окна в другое при помощи rowscopy.
...
Рейтинг: 0 / 0
02.08.2004, 12:14
    #32631148
Levon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Окна - 2 Sheet'а. Пробраться-то можно. Но мы ведь лёгких путей не ищем! А как через PowerObject передавать?
...
Рейтинг: 0 / 0
02.08.2004, 12:48
    #32631231
alexis glinski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
см. help OpenSheetWithParm
...
Рейтинг: 0 / 0
02.08.2004, 12:52
    #32631245
AnatolyRyabov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
А объявить пользовательское событие для одного окна, которое будет принимать аргумент упомянутую структуру и вызывать его из другого окна (может даже с Post) не подходит???
...
Рейтинг: 0 / 0
02.08.2004, 13:13
    #32631299
Levon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
To alexis qlinski:
Не, не пойдёт - никакие окна не открываются, они уже открыты. Нужно по нажатию кнопки в одном передать структуру в другое.

To AnatolyRyabov:
А как в событии указать аргумент-структуру?
...
Рейтинг: 0 / 0
02.08.2004, 13:25
    #32631336
AnatolyRyabov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Я делаю так: передаю как any указатель на нужный объект, а в самом событии создаю новый экземпляр, которому назначаю переданный указатель.
Да вообще для такой частной задачи можно много подходов применить. Например держать глобальный массив(ведь ключи одного типа?) а событие в Message получает флаг необходимости чтения массива...
И т.п.
...
Рейтинг: 0 / 0
02.08.2004, 14:28
    #32631493
Levon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Не хотелось бы с глобальными переменными связываться...
...
Рейтинг: 0 / 0
02.08.2004, 14:41
    #32631531
alexis glinski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
GetFirstSheet / GetNextSheet , esli ispol'zuesh PFC, to tam uzhe est' gnv_app.of_GetFrame().inv_sheetmanager. of_GetSheetsByClass ()
...
Рейтинг: 0 / 0
02.08.2004, 15:08
    #32631622
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
LevonА как в событии указать аргумент-структуру?
AnatolyRyabovЯ делаю так: передаю как any указатель на нужный объект, а в самом событии создаю новый экземпляр, которому назначаю переданный указатель.

вы меня удивляете.
А зачем any? Почему нельзя тип вбить ручками в поле Argument Type?
и что значит "создаю новый экземпляр"? экземпляр простите чего?
...
Рейтинг: 0 / 0
02.08.2004, 15:14
    #32631639
Сотников
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Правильно:

ЗоринАндрей
вы меня удивляете.
А зачем any? Почему нельзя тип вбить ручками в поле Argument Type?
и что значит "создаю новый экземпляр"? экземпляр простите чего?

Продолжая про пользовательские NVO. как раз тип его и указывается как параметр
...
Рейтинг: 0 / 0
02.08.2004, 15:27
    #32631671
AnatolyRyabov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Как это "чего"?
Структуры. Я же сказал, что не по значению передаю, а по ссылке.
Хотя можно и по значению. Верно товарищ говорит, можно не париться и руками тип указать для аргумента. Только если any будет, то можно будет не только структуру передавать, а что угодно. Только тип проверять потом и для нужного нужное действие выполнять - вообще универсально получиться.

Собственно наверное хендел объекта можно как long у Message передавать и тогда и не каких аргументов и не гобальных переменных не надо будет.
...
Рейтинг: 0 / 0
02.08.2004, 19:50
    #32632161
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
AnatolyRyabovКак это "чего"?
Структуры. Я же сказал, что не по значению передаю, а по ссылке.
Сорри, в исходном сообщении речь шла об объекте, а для объекта все равно по ссылке или по значению - они всегда передаются по ссылке, в отличии от простых типов и структур.
Если речь о передаче между двумя независимыми sheets, то имеет смысл передавать именно через структуру или же сделать объект способный себя копировать.
Иначе в момент обращения по ссылке на переданный объект может оказаться что "передающее" окно уже закрылось и ссылка "не работает".

AnatolyRyabov
Хотя можно и по значению. Верно товарищ говорит, можно не париться и руками тип указать для аргумента. Только если any будет, то можно будет не только структуру передавать, а что угодно.
Только тип проверять потом и для нужного нужное действие выполнять - вообще универсально получиться.
Ох уж мне эти универсализаторы ;-)
Науниверсализуют, а потом лезут из всех щелей ошибки типа "Cannot convert Any variable in Any to Any" :-)
Неспроста ж большинство современных языков - со строгой типизацией?
И насколько читабельность кода будет хуже со всеми этими проверками?
И насколько труднее будет отлаживать код, когда аргументы в runtime могут вдруг оказаться практически чем угодно...
хуже может быть только глобальная структура с полями типа string1,...,string15, long1, long10 и т.п.

Медитировать над строчкой
if Что-то-тут-пришло.long7 = 1894
не менее неприятно чем блуждать в CHOOSE CASE что-то-тут-пришло.ClassName() на полторы тысячи строк.

AnatolyRyabovСобственно наверное хендел объекта можно как long у Message передавать и тогда и не каких аргументов и не гобальных переменных не надо будет.
Спаси нас Господи от хенделов объектов!!!
фактически - объекты(ну или окна) ОБМЕНИВАЮТСЯ данными.
Передача хенделя означает что в поисках нужных данных один объект "копается в потрохах" другого.
Таким образом построенная система имеет слишком много зависимостей между объектами и начинает рассыпаться при попытке внести существенные изменения.

Впрочем всегда найдутся желающие по простецки "жахнуть RowsCopy". :-)
я и сам по молодости грешил :-)
...
Рейтинг: 0 / 0
02.08.2004, 19:59
    #32632170
AnatolyRyabov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача структуры
Достойное уважение мнение. Тем не менее частное мнение. Конечно, стремять к универсальности всегда надо позаботиться о наборе провера типа IsNull, соответствия типов и т.п. Да ещё по-хорошему желательно и исключения обрабатывать. Но, строго говоря все упомянутые вещи давно являются признаками хорошего стиля.

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


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