|
свойства объектов
|
|||
---|---|---|---|
#18+
добрый день! есть ПБ105. пытаюсь обработать свойства объектов базируясь на их типах. 1.как определить имеет ли объект свойство например text? 2.некоторые userobject содержат в себе массив control, а некоторые нет. как определить -есть у userobject свойство control? с уважением ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 11:48 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboyko, 1. Никак (в DW можно проверить через Describe, а в окне проверить не получится). 2. Смотреть в хелпе. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 13:39 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
кол-во базовых объектов в билдере ограничено. поэтому есть уже стандартная конструкция если тип (typeof) объекта окно или юзер-обжект то у него есть параметр control[] ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 14:02 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Riska1. Никак (в DW можно проверить через Describe, а в окне проверить не получится). Проверить-то как раз можно, посмотрев в свойство Classdefinition. А вот чтобы обратиться к control[] нужно как выше написали определить через typeof тип и присвоить ссылку в переменную этого типа. В этом случае Classdefinition не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 14:17 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Dmitry.., к сожалению userobject не всегда содержит массив control-только если эти контролы есть! и потом-я надеялся обработать контролы в цикле, проверяя есть ли у какого нибудь предка свойство text - оказывается у всех все по разному... :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 14:24 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, а что дает использование Classdefinition? я до сих пор этого не понял-хотя и читал хелп... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 14:28 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboykoDmitry.., к сожалению userobject не всегда содержит массив control-только если эти контролы есть! и потом-я надеялся обработать контролы в цикле, проверяя есть ли у какого нибудь предка свойство text - оказывается у всех все по разному... :-( Че-то я не верю, простите :) В userobject всегда есть свойство control[]. ЗЫ. И Text тоже всегда есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 14:43 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboykoAnatoly Moskovsky, а что дает использование Classdefinition? я до сих пор этого не понял-хотя и читал хелп... Оно позволяет узнать структуру объекта любого заранее неизвестного класса в ходе выполнения программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 14:49 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, а вы проверьте :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 15:20 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly MoskovskysboykoAnatoly Moskovsky, а что дает использование Classdefinition? я до сих пор этого не понял-хотя и читал хелп... Оно позволяет узнать структуру объекта любого заранее неизвестного класса в ходе выполнения программы. смысл я понимаю - что для этого и придумано. но как увидеть этот смысл(ведь любой программист понимает только примеры :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 15:22 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
1. В ClassDefinition есть массив VariableList типа VariableDefinition, в котором содержатся все свойства данного объекта. Каждое свойство имеет "Name". Если этот "Name" = text, значит объект имеет свойство Text. 2. Опять же, в ClassDefinition есть массив NestedClassList типа ClassDefinition. Это массив всех объектов, которые содержатся в данном объекте. Его можно использовать вместо Control[] Определяете переменную ClassDefinition lclass Затем читаете в неё свой объект lclass = FindClassDefinition('my_object') А теперь запускайте через Debuger и смотрите все свойства lclass. Все увидите сами. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 15:44 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboykoAnatoly Moskovsky, а вы проверьте :-) Зачем мне проверять? Я знаю. Если бы ваше утверждение (что не все юзеробджекты содержать массив контролов) было верным то этот код нельзя было бы откомпилировать: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 16:22 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly MoskovskysboykoAnatoly Moskovsky, а вы проверьте :-) Зачем мне проверять? Я знаю. Если бы ваше утверждение (что не все юзеробджекты содержать массив контролов) было верным то этот код нельзя было бы откомпилировать: Код: plaintext 1. 2. 3. 4. 5.
может я чето не понимаю, но вот пустой 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 16:34 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboyko может я чето не понимаю, но вот пустой userobject и его source Контрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 16:40 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly Moskovskysboyko может я чето не понимаю, но вот пустой userobject и его source Контрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник? из библиотеки(при выполнении) оттуда же и текст(исходник) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 16:56 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboykoКонтрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник? из библиотеки(при выполнении) оттуда же и текст(исходник) Я счас наверно расскажу страшный секрет: откомпилированная программа не содержит исходных кодов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:06 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly MoskovskysboykoКонтрольный вопрос на понимание: откуда при выполнении программы вы собирались получать исходник? из библиотеки(при выполнении) оттуда же и текст(исходник) Я счас наверно расскажу страшный секрет: откомпилированная программа не содержит исходных кодов. я расскажу еще более страшный-откомпилированная программа не содержит исходных кодов но получается из как раз из них :-) и по идее(шутка конечно) того чего нет в исходниках как правило нет и в исп модуле ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:09 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
уже очень смешно... -- ЗЫ:хотя цель не была озвучена... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:11 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, спасибо конечно за страшные секреты, но не могу понять откуда при обработке строк через describe и прочие вещи я получил удвоенные кавычки-то есть текст стал содержать видимые кавычки! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:13 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Dmitry..уже очень смешно... -- ЗЫ:хотя цель не была озвучена... устали наверно... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:14 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboykoтого чего нет в исходниках как правило нет и в исп модуле Это было бы так если бы не наследование. Откройте Object Browser и убедитесь что в любом объекте есть куча свойств и методов, которых нет в исходнике. Короче, ваша идея делать выводы о структуре объекта на основе исходника в корне неверна. Для вашей задачи достаточно того кода что я привел (c typeof()), с добавлением веток для каждого базового типа содержащего control[]. Для более общего анализа структуры надо использовать Classdefinition. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:20 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
Anatoly Moskovskysboykoтого чего нет в исходниках как правило нет и в исп модуле Это было бы так если бы не наследование. Откройте Object Browser и убедитесь что в любом объекте есть куча свойств и методов, которых нет в исходнике. Короче, ваша идея делать выводы о структуре объекта на основе исходника в корне неверна. Для вашей задачи достаточно того кода что я привел (c typeof()), с добавлением веток для каждого базового типа содержащего control[]. Для более общего анализа структуры надо использовать Classdefinition. никто с вами и не спорит-именно этим методом(который вы подсказали ранее) я и пользуюсь! хотя появились удвоенные кавычки-что слегка удивляет. про страшный секрет наследования - знаю тоже :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:24 |
|
свойства объектов
|
|||
---|---|---|---|
#18+
sboykoAnatoly Moskovsky, спасибо конечно за страшные секреты, но не могу понять откуда при обработке строк через describe и прочие вещи я получил удвоенные кавычки-то есть текст стал содержать видимые кавычки! Выделите этот вопрос в отдельную тему, приведите пример, там и обсудим. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2010, 17:29 |
|
|
start [/forum/topic.php?fid=15&msg=36500474&tid=1336010]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 444ms |
0 / 0 |