Вниз
Скачать: CL | DM;

Примитивные объекты: вопрос.   Найти похожие ветки 

 
Trible   (2007-01-23 21:11) [0]

Всем привет.
Есть Pobj. от FindObject.
Можно ли как-то узнать кто он - Pcontrol или PMenu или еще кто то?

Может есть функции типа IsPcontrol(Obj: Pobj) итп.
Если нету то как свои сделать, куда смотреть?
Или может есть хитрости типа :
if Pcontrol(Obj).?? =


 
Trible   (2007-01-24 19:02) [1]

Помогите с этим вопросом.
Этот вопрос сходен с вопросом про popup меню.
Вот что вы Владимир отетили:

можно посмотреть на список объектов, добавленных в список Add2AutoFree.

Опять же там  Pobj . Как узнать что это PMenu или Pcontrol ?


 
Vladimir Kladov   (2007-01-24 20:29) [2]

В KOL нет RTTI. AncestorOfObject - не работает правильно (кажется). Вообще, для любой задачи есть методы решения. RTTI - это не задача, а метод. Вы задачу поясните.


 
Psychedelic ©   (2007-01-24 20:31) [3]

Ну например взять его дескриптор и подсунуть его IsMenu.
если вернет истину, значит меню. И пошло поехало.

Pcontrol(объект).handle


 
Trible   (2007-01-24 20:49) [4]

Нужно найти на форме popupMenu и основное меню.
Это компонент делаю который сканит всё что на форме (это часть действия).

К примеру остальные компоненты я нахожу перебором в for, свойства  Children.
В результате получаю Pcontrol, и здесь узнаю имя этого контрола. Итп

Но с помощью свойства Children я не могу найти ни popup меню ни основное меню. Если бы там было меню я бы и не спрашивал.
Поэтому я решил прокручивать NamedObjectsList, получая Pobj (имена я использую). Проверять на nil, и получать Pobj. Другого пути получить меню я так понял нету.
Ну а что с ним делать дальше с Pobj, я не знаю, как мне узнать что это PMenu, (нужно забрать все надписи (текст))?


 
Psychedelic ©   (2007-01-24 22:32) [5]


> Pcontrol(объект).handle

Думаю догадались что PMenu хотел сказать.


 
Vladimir Kladov   (2007-01-25 15:29) [6]

Допустим, получить список простых объектов, приаттаченных на автоуничтожение, можно просто выкинув из этого списка контролы. Но дальше - RTTI нет, и вы не сможете узнать, было это меню или не меню.

А зачем вообще нужна динамика? Ведь форма каждый раз создается одна и та же, с тем же набором всего, что ей принадлежит. Может, стоит начать с design-time? Пусть для вашего мудрого объекта сгенерится некоторое число вызовов типа AddObjectToHandle( obj: PObj; ... ); и во время работы он просто получит то, что ему надо, ничего не отыскивая, а просто беря из своего списка.


 
Psychedelic ©   (2007-01-25 17:45) [7]

2 trible
Слушайте мы случайно не одну работу делаем?
Вы не мультиязыковой компонент делаете?
Просто у меня теже вопросы возникали, возился сидел...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
15-1187333519
lehich
2007-08-17 10:51
2007.09.16
6+5+4+3+2+1=????


6-1169653883
Hint
2007-01-24 18:51
2007.09.16
Как узнать соединен ли (активен ли) socket?


2-1187888436
Альберт_
2007-08-23 21:00
2007.09.16
обновить скрытый iframe чужого WB


15-1187553791
wp2
2007-08-20 00:03
2007.09.16
Как загрузить Rich-тест в компонент TRichEdit на этапе проэктир..


2-1187530743
Тмиофей
2007-08-19 17:39
2007.09.16
Как использоват свойство Tag




   Наверх