Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / свойства объектов / 24 сообщений из 24, страница 1 из 1
03.03.2010, 11:48
    #36499252
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
добрый день!
есть ПБ105.
пытаюсь обработать свойства объектов базируясь на их типах.
1.как определить имеет ли объект свойство например text?
2.некоторые userobject содержат в себе массив control, а некоторые нет. как определить -есть у userobject свойство control?
с уважением
...
Рейтинг: 0 / 0
03.03.2010, 13:39
    #36499693
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboyko,
1. Никак (в DW можно проверить через Describe, а в окне проверить не получится).
2. Смотреть в хелпе.
...
Рейтинг: 0 / 0
03.03.2010, 14:02
    #36499797
Dmitry..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
кол-во базовых объектов в билдере ограничено.
поэтому есть уже стандартная конструкция
если тип (typeof) объекта окно или юзер-обжект то у него есть параметр control[]
...
Рейтинг: 0 / 0
03.03.2010, 14:17
    #36499851
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Riska1. Никак (в DW можно проверить через Describe, а в окне проверить не получится).
Проверить-то как раз можно, посмотрев в свойство Classdefinition.
А вот чтобы обратиться к control[] нужно как выше написали определить через typeof тип и присвоить ссылку в переменную этого типа. В этом случае Classdefinition не нужен.
...
Рейтинг: 0 / 0
03.03.2010, 14:24
    #36499881
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Dmitry..,
к сожалению userobject не всегда содержит массив control-только если эти контролы есть!
и потом-я надеялся обработать контролы в цикле, проверяя есть ли у какого нибудь предка свойство text - оказывается у всех все по разному... :-(
...
Рейтинг: 0 / 0
03.03.2010, 14:28
    #36499896
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly Moskovsky,
а что дает использование Classdefinition? я до сих пор этого не понял-хотя и читал хелп...
...
Рейтинг: 0 / 0
03.03.2010, 14:43
    #36499950
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboykoDmitry..,
к сожалению userobject не всегда содержит массив control-только если эти контролы есть!
и потом-я надеялся обработать контролы в цикле, проверяя есть ли у какого нибудь предка свойство text - оказывается у всех все по разному... :-(
Че-то я не верю, простите :)
В userobject всегда есть свойство control[].

ЗЫ. И Text тоже всегда есть.
...
Рейтинг: 0 / 0
03.03.2010, 14:49
    #36499970
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboykoAnatoly Moskovsky,
а что дает использование Classdefinition? я до сих пор этого не понял-хотя и читал хелп...
Оно позволяет узнать структуру объекта любого заранее неизвестного класса в ходе выполнения программы.
...
Рейтинг: 0 / 0
03.03.2010, 15:20
    #36500070
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly Moskovsky,
а вы проверьте :-)
...
Рейтинг: 0 / 0
03.03.2010, 15:22
    #36500082
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly MoskovskysboykoAnatoly Moskovsky,
а что дает использование Classdefinition? я до сих пор этого не понял-хотя и читал хелп...
Оно позволяет узнать структуру объекта любого заранее неизвестного класса в ходе выполнения программы.

смысл я понимаю - что для этого и придумано. но как увидеть этот смысл(ведь любой программист понимает только примеры :-)
...
Рейтинг: 0 / 0
03.03.2010, 15:44
    #36500156
Shtuckenshnuder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
1.
В ClassDefinition есть массив VariableList типа VariableDefinition, в котором содержатся все свойства данного объекта. Каждое свойство имеет "Name". Если этот "Name" = text, значит объект имеет свойство Text.

2. Опять же, в ClassDefinition есть массив NestedClassList типа ClassDefinition. Это массив всех объектов, которые содержатся в данном объекте. Его можно использовать вместо Control[]

Определяете переменную
ClassDefinition lclass
Затем читаете в неё свой объект
lclass = FindClassDefinition('my_object')

А теперь запускайте через Debuger и смотрите все свойства lclass. Все увидите сами.
...
Рейтинг: 0 / 0
03.03.2010, 16:22
    #36500277
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboykoAnatoly Moskovsky,
а вы проверьте :-)
Зачем мне проверять? Я знаю.
Если бы ваше утверждение (что не все юзеробджекты содержать массив контролов) было верным то этот код нельзя было бы откомпилировать:
Код: plaintext
1.
2.
3.
4.
5.
If obj.TypeOf() = UserObject! Then
	Userobject u
	u = obj
	MessageBox("", UpperBound(u.control[]))
End If
...
Рейтинг: 0 / 0
03.03.2010, 16:34
    #36500325
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly MoskovskysboykoAnatoly Moskovsky,
а вы проверьте :-)
Зачем мне проверять? Я знаю.
Если бы ваше утверждение (что не все юзеробджекты содержать массив контролов) было верным то этот код нельзя было бы откомпилировать:
Код: plaintext
1.
2.
3.
4.
5.
If obj.TypeOf() = UserObject! Then
	Userobject u
	u = obj
	MessageBox("", UpperBound(u.control[]))
End If

может я чето не понимаю, но вот пустой userobject и его source
forward
global type ффф from userobject
end type
end forward

global type ффф from userobject
string tag = "фффффффффф"
integer width = 439
integer height = 768
long backcolor = 67108864
string text = "none"
long tabtextcolor = 33554432
long picturemaskcolor = 536870912
end type
global ффф ффф

on ффф.create
end on

on ффф.destroy
end on
...
Рейтинг: 0 / 0
03.03.2010, 16:40
    #36500353
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboyko
может я чето не понимаю, но вот пустой userobject и его source

Контрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник?
...
Рейтинг: 0 / 0
03.03.2010, 16:56
    #36500417
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly Moskovskysboyko
может я чето не понимаю, но вот пустой userobject и его source

Контрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник?
из библиотеки(при выполнении)
оттуда же и текст(исходник)
...
Рейтинг: 0 / 0
03.03.2010, 17:06
    #36500458
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboykoКонтрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник?
из библиотеки(при выполнении)
оттуда же и текст(исходник)
Я счас наверно расскажу страшный секрет: откомпилированная программа не содержит исходных кодов.
...
Рейтинг: 0 / 0
03.03.2010, 17:09
    #36500474
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly MoskovskysboykoКонтрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник?
из библиотеки(при выполнении)
оттуда же и текст(исходник)
Я счас наверно расскажу страшный секрет: откомпилированная программа не содержит исходных кодов.
я расскажу еще более страшный-откомпилированная программа не содержит исходных кодов но получается из как раз из них :-) и по идее(шутка конечно) того чего нет в исходниках как правило нет и в исп модуле
...
Рейтинг: 0 / 0
03.03.2010, 17:11
    #36500485
Dmitry..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
уже очень смешно...
--
ЗЫ:хотя цель не была озвучена...
...
Рейтинг: 0 / 0
03.03.2010, 17:13
    #36500493
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly Moskovsky,
спасибо конечно за страшные секреты, но не могу понять откуда при обработке строк через describe и прочие вещи я получил удвоенные кавычки-то есть текст стал содержать видимые кавычки!
...
Рейтинг: 0 / 0
03.03.2010, 17:14
    #36500497
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Dmitry..уже очень смешно...
--
ЗЫ:хотя цель не была озвучена...
устали наверно... :-)
...
Рейтинг: 0 / 0
03.03.2010, 17:20
    #36500516
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboykoтого чего нет в исходниках как правило нет и в исп модуле
Это было бы так если бы не наследование. Откройте Object Browser и убедитесь что в любом объекте есть куча свойств и методов, которых нет в исходнике.

Короче, ваша идея делать выводы о структуре объекта на основе исходника в корне неверна.

Для вашей задачи достаточно того кода что я привел (c typeof()), с добавлением веток для каждого базового типа содержащего control[].
Для более общего анализа структуры надо использовать Classdefinition.
...
Рейтинг: 0 / 0
03.03.2010, 17:24
    #36500533
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly Moskovskysboykoтого чего нет в исходниках как правило нет и в исп модуле
Это было бы так если бы не наследование. Откройте Object Browser и убедитесь что в любом объекте есть куча свойств и методов, которых нет в исходнике.

Короче, ваша идея делать выводы о структуре объекта на основе исходника в корне неверна.

Для вашей задачи достаточно того кода что я привел (c typeof()), с добавлением веток для каждого базового типа содержащего control[].
Для более общего анализа структуры надо использовать Classdefinition.

никто с вами и не спорит-именно этим методом(который вы подсказали ранее) я и пользуюсь! хотя появились удвоенные кавычки-что слегка удивляет. про страшный секрет наследования - знаю тоже :-)
...
Рейтинг: 0 / 0
03.03.2010, 17:29
    #36500554
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
sboykoAnatoly Moskovsky,
спасибо конечно за страшные секреты, но не могу понять откуда при обработке строк через describe и прочие вещи я получил удвоенные кавычки-то есть текст стал содержать видимые кавычки!
Выделите этот вопрос в отдельную тему, приведите пример, там и обсудим.
...
Рейтинг: 0 / 0
03.03.2010, 17:41
    #36500597
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
свойства объектов
Anatoly Moskovsky,

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


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