powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как получить список свойств объекта?
5 сообщений из 5, страница 1 из 1
Как получить список свойств объекта?
    #37679859
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток! . Объекты добавлялись на объекты с использованием sys(2015).. те в свою очередь тоже могли добавить в свое свойство объект и тд. как определить имена свойств именно "со стороны". Ну напримере вот такой гляделки
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
ocal test1,test2,lcTempFile
test1=SYS(2015)
_screen.Addobject(test1,'Custom')
_screen.Addobject(SYS(2015),'Custom')
test2='_screen.'+test1
WITH &test2
   .Addobject(SYS(2015),'Custom')
ENDWITH
**А вот терь как поглядеть?
lcTempFile = Addbs(Sys(2023))+Sys(2015)+".tmp"
=STRTOFILE(mLook(_screen,0),lcTempFile)
MODIFY FILE &lcTempFile nowait

FUNCTION mLook
PARAMETERS mObject,Level
FOR EACH Loc IN &&ВОТ ЧТО CДЕСЬ ПРОИПИСАТЬ ИЛИ ЧТО ИЗМЕНИТЬ
    IF VARTYPE(Loc)=='O'
       RETURN PADR('',Level,'-')+Loc.name+mLook(Loc,Level+1)+CHR(13)
    ENDIF
ENDFUNC

Собственно мне нужно получить список свойств объекта -объектного типа.
...
Рейтинг: 0 / 0
Как получить список свойств объекта?
    #37679902
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю как ты хочешь не получится.
Можно наоборот: функция PEMSTATUS() проверяет наличие свойства/метода у объекта.
...
Рейтинг: 0 / 0
Как получить список свойств объекта?
    #37680611
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно у интересующего объекта создать свойства-массив, где и сохранять имена новосозданных свойств (или даже сами объекты), а при необходимости просто перебирать этот массив.
...
Рейтинг: 0 / 0
Как получить список свойств объекта?
    #37681717
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T ,Dag Угу спс.
Я делаю примерно так. Добавляю свойство и увеличиваю еще одно свойство 'счетчик подобно открытых'- получается эдакое 'дерево'. Обратно(отработавшие) удаляю как у this.parent.name удаляю this.name и уменьшаю счетчик, если счетчик 0 -грохаю еще уровень и вроде все работает.
А вопрос собственно возник при желании, не добавляя в рабочий код ничего лишнего, сделать "внешнюю гляделку" в проге, чисто глянуть глазом-все ли в общем так как задумано (в рантайме без отладчиков), юзеру -все равно а тебе удобней бывает.
Хотя насчет одного свойства-массива объектов пожалуй интересней- тогда не нужно юзать SYS(2015) для имени свойства-оно всегда одно и "внешняя гляделка" получится,жаль лишь что переделать придется. Еще раз спс вопрос снят.
...
Рейтинг: 0 / 0
Как получить список свойств объекта?
    #37690655
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каждый объект-контейнер FoxPro содержит в себе две специальные коллекции вложенных объектов. В обязательном порядке будет существовать коллекция с именем "Objects" и еще одна коллекция, имя которой будет зависеть от типа объекта-контейнера:

Controls (Form, Control, Container, Page, Column)

Columns (Grid)

Pages (PageFrame),

Buttons (CommandGroup или OptionGroup)

Как следствие, можно организовать перебор объектов в коллекции. Либо просто по номерам, используя цикл FOR…ENDFOR, либо циклом FOR EACH. Например, перебрать все объекты Column в Grid можно следующими способами

Код: sql
1.
2.
3.
4.
 * Перебор всех объектов формы первого уровня вложенности  
  FOR EACH loObj IN ThisForm.Objects
  	?”Name= ”, loObj.Name  
  ENDFOR



Список свойств объекта - это функция Amembers(). Обрати внимание на 3 параметр этой функции.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как получить список свойств объекта?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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