powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перебор объектов контейнера через FOR EACH
7 сообщений из 7, страница 1 из 1
Перебор объектов контейнера через FOR EACH
    #36907068
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Такой вопрос: при переборе объектов контейнера (нпр: Page) возможна ли ситуация, когда объект (child), принадлежащий некоему контейнеру в этом контейнере (parent, нпр: гриду на этой Page) будет поднят перебором ранее/позже (мб независимо вообще) самого грида (т.е. child прежде его parent-а)?
Например, следующему коду в loContainer передается страница PageFrame содержащая грид:
Код: plaintext
1.
2.
FOR EACH loObj in loContainer.Objects
...
ENDFOR
в такую обработку (коду выше) я специально не засылаю контейнеры BaseClass которых = GRID или OPTIONGROUP:
Код: plaintext
1.
2.
3.
4.
IF PEMSTATUS(m.loCtrl,"Objects",  5 );
AND !INLIST(UPPER(m.loCtrl.BaseClass),'GRID','OPTIONGROUP')
вызов кода перебора объектов контейнера
...
ENDIF
Таким образом я предполагаю что обработка объектов будет идти поконтейнерно. Но дело в том, что у меня в лог упала ошибка при обработке объекта грида (контрола ячеек столбца), хотя такого, как я понимаю, вообще не должно было произойти. Однако если код получает ссылку на контрол в гриде ранее или позже самого грида или вообще независимо от грида (т.е. если таким способом обрабатываются вообще все объекты контейнера, даже вложенные в другие контейнеры), то тогда егор возможен, а мне надобно что-то делать с этим.

спасибо.

vfp9
...
Рейтинг: 0 / 0
Перебор объектов контейнера через FOR EACH
    #36907194
CTAC-KO,
хотя я так и не понял кто на ком стоял, на таки пару мыслей выскажу.
1. FOR EACH не гарантирует какой-либо порядок обработки.
2. Ковыряние одного обхъекта во внутренностях другого - моветон. Создайте в каждом паренте метод перебора чилдов и им пользуйтесь и порядок получится сам собой.
...
Рейтинг: 0 / 0
Перебор объектов контейнера через FOR EACH
    #36907996
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я, собственно, не о каком-либо порядке перебора, а о том, будет ли такой перебор ковыряться в контейнерах? т.к. полагаю что не долж0н
...
Рейтинг: 0 / 0
Перебор объектов контейнера через FOR EACH
    #36908077
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOДа я, собственно, не о каком-либо порядке перебора, а о том, будет ли такой перебор ковыряться в контейнерах? т.к. полагаю что не долж0н
Не будет, если хочешь чтоб обрабатывались элементы вложенных контейнеров - запускай код рекурсивно.
...
Рейтинг: 0 / 0
Перебор объектов контейнера через FOR EACH
    #36908503
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дело в том что именно так и делаю, причем исключаю рекурсию в гриды и опшнгруппы (см выше), но уже несколько раз код умудрился "зайти" в грид, как в контейнер. Потому-то я и задал вопрос.
...
Рейтинг: 0 / 0
Перебор объектов контейнера через FOR EACH
    #36908617
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KOно уже несколько раз код умудрился "зайти" в грид, как в контейнер.
Код объекта и окончательный код обхода в "студию" иначе не верю
...
Рейтинг: 0 / 0
Перебор объектов контейнера через FOR EACH
    #36931321
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Piva
У меня там код разбит на 2 части - одна для обхода страниц PageFrame, а другая для обхода объектов других контейнеров. Так в одной части было
Код: plaintext
1.
2.
FOR EACH loObj in loContainer.Objects
...
ENDFOR
а в другой
Код: plaintext
1.
2.
FOR EACH loObj in loContainer.Controls
...
ENDFOR
я исправил второе на Objects и бага больше не являлась пока, поэтому думаю что проблема была в этом...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перебор объектов контейнера через FOR EACH
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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