|
Передача структуры
|
|||
---|---|---|---|
#18+
Привет, народ! Есть необходимость предать из одного окна в другое структуру с ключами изменённых записей и собственно значениями для возможности возврата старых значений. Как осуществить такую предачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 11:40 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Лучше для этого использовать пользовательский NVO и передавать через Message ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 11:48 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Через PowerObject ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 11:49 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Какие окна? 2 sheet-a,sheet и response или как? Вопрос в том,можно ли по поинтерам пробраться от одного к другому. Если да,то интересные записи можно без всякой структуры жахнуть из одного окна в другое при помощи rowscopy. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 11:58 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Окна - 2 Sheet'а. Пробраться-то можно. Но мы ведь лёгких путей не ищем! А как через PowerObject передавать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 12:14 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
см. help OpenSheetWithParm ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 12:48 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
А объявить пользовательское событие для одного окна, которое будет принимать аргумент упомянутую структуру и вызывать его из другого окна (может даже с Post) не подходит??? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 12:52 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
To alexis qlinski: Не, не пойдёт - никакие окна не открываются, они уже открыты. Нужно по нажатию кнопки в одном передать структуру в другое. To AnatolyRyabov: А как в событии указать аргумент-структуру? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 13:13 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Я делаю так: передаю как any указатель на нужный объект, а в самом событии создаю новый экземпляр, которому назначаю переданный указатель. Да вообще для такой частной задачи можно много подходов применить. Например держать глобальный массив(ведь ключи одного типа?) а событие в Message получает флаг необходимости чтения массива... И т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 13:25 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Не хотелось бы с глобальными переменными связываться... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 14:28 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
GetFirstSheet / GetNextSheet , esli ispol'zuesh PFC, to tam uzhe est' gnv_app.of_GetFrame().inv_sheetmanager. of_GetSheetsByClass () ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 14:41 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
LevonА как в событии указать аргумент-структуру? AnatolyRyabovЯ делаю так: передаю как any указатель на нужный объект, а в самом событии создаю новый экземпляр, которому назначаю переданный указатель. вы меня удивляете. А зачем any? Почему нельзя тип вбить ручками в поле Argument Type? и что значит "создаю новый экземпляр"? экземпляр простите чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 15:08 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Правильно: ЗоринАндрей вы меня удивляете. А зачем any? Почему нельзя тип вбить ручками в поле Argument Type? и что значит "создаю новый экземпляр"? экземпляр простите чего? Продолжая про пользовательские NVO. как раз тип его и указывается как параметр ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 15:14 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Как это "чего"? Структуры. Я же сказал, что не по значению передаю, а по ссылке. Хотя можно и по значению. Верно товарищ говорит, можно не париться и руками тип указать для аргумента. Только если any будет, то можно будет не только структуру передавать, а что угодно. Только тип проверять потом и для нужного нужное действие выполнять - вообще универсально получиться. Собственно наверное хендел объекта можно как long у Message передавать и тогда и не каких аргументов и не гобальных переменных не надо будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 15:27 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
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". :-) я и сам по молодости грешил :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 19:50 |
|
Передача структуры
|
|||
---|---|---|---|
#18+
Достойное уважение мнение. Тем не менее частное мнение. Конечно, стремять к универсальности всегда надо позаботиться о наборе провера типа IsNull, соответствия типов и т.п. Да ещё по-хорошему желательно и исключения обрабатывать. Но, строго говоря все упомянутые вещи давно являются признаками хорошего стиля. С уважением, Анатолий Рябов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2004, 19:59 |
|
|
start [/forum/topic.php?fid=15&msg=32631050&tid=1338973]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
127ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 495ms |
0 / 0 |