Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать имя компонента в момент его создания? [Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2

ZENsan ©   (2008-04-23 16:29:00) 

Ситуация следующая:

Есть форма (TFormX). В ней два фрейма одного класса (TFrameX) с именами FrameA, FrameB. Все отлично до одного момента:

В конструкторе фреймов нужно узнать имя фрейма! Проблема в том, что фрейм ещё не назван в тот момент и имеет имя по умолчанию FrameX (без буквы T).

Мне это нужно, так как я исправляю баг в TJvFormPlacement. Так вот мне нужно зарезолвить путь до объекта - нужно имя, а оба фрейма возвращают одно и то же имя...

Предложите может что-нибудь, Мастера?


ZENsan   (2008-04-24 08:54:00) [1]

Spsibo takiem masteram, kak {RASkov} i Reindeer Moss Eater za predlozhennie idei.

No osoboe SPASIBO.... SHIKNIKU!!! The BEST of the BEST of the BEST!!! (Y)


ZENsan   (2008-04-24 08:52:00) [2]

I esli ti umeesh chitatj s visshim obrazovanie. Mne ne zadanie imen nado a ego opredelenie.

Tak kak komponent nahoditsja v objekte. A Kogda tot objekt sozdaetsja, to on sozdaet vse komponenti, kotorie v nem nahodjatsja. I toljko potom Loaded vizivaetsja. V etom problema. Ja sprashival, ljudi predlagali chto-to..
No bez geniev ne oboshlosj..


ZENsan   (2008-04-24 08:50:00) [3]

A eshe i v profile napisano "Master delphi...".. visshee obrazovanie..Master..


ZENsan   (2008-04-24 08:44:00) [4]

I RTTI navernoe v borlande takie zhe lohi kak ja pridumivali da? "имена компонентам нужны только для режима разработки"...
Preklonjajusj pered vashimi umstvennimi sposobnostjami!!!


ZENsan   (2008-04-24 08:43:00) [5]

Удалено модератором
Примечание: Обсуждение модерирования


ZENsan   (2008-04-24 08:42:00) [6]

Ja smotrju ti bolvan na golovu "SNIKNIK"!!!

To chto tvoj IQ < 115 nikto ne somnevalsja...

I esli ti ne znaesh chto takoe Jedi Componenti... to sochustvuju tebe...

Otkuda takie barani berutsja...


sniknik   (2008-04-23 23:11:00) [7]

имена компонентам нужны только для режима разработки... задание имен в рантайм это происки "пиаршиков своих страниц", вываливают надуманную проблему и типа обсуждают, а на самом деле "светят" свою страницу...
не будет здесь такого.

to ZENsan, любой пост со ссылкой  от тебя буду считать спамом и удалять (в разумных пределах... и без твоих усилий популярные ссылки можеш приводить).


ZENsan   (2008-04-23 22:26:00) [8]

Эхх.. Повёлся я на ваши фишки...

Мне ж на Create надо узнавать имя....
Ну в designtime задаём параметры для етого TJvFormStorage.StoredProps.
И в случаях, если Active у него true - то при создании етого компонента(TJvFormStorage) нужно восстанавливать определённые свойства Ownera. Если вызывается после етого(вручную где-то), то все путем - можно Loaded override сделать или просто из формы вызывать (как я сеичас пока делаю) естесвенно что там всё универсально..обходится рекурсивноь нахдятся ети компоненти и вызываются restoreformplacement/saveofmrplacement.

Но чтобы компонент корректно функционировал с фреймами надо вот чё-то придумать как узнать реальное имя Ownera v constructor...


ZENsan   (2008-04-23 21:59:00) [9]

Vot v principe problemu i reshili, spasibo, esli chto eshe vernusj..


ZENsan   (2008-04-23 21:58:00) [10]

Ja pisal svoj post kogda tvoego {Raskov} message eshe ne bilo...


ZENsan   (2008-04-23 21:58:00) [11]

:)


ZENsan   (2008-04-23 21:57:00) [12]

Я же не интегрирую ето в свой фрейм, а в любой. У фрейма можно выжать только конструктор и деструктор...

Или ты думаесх оверрайд сделать процедуре Loaded?


{RASkov}   (2008-04-23 21:55:00) [13]

> [17] zensan ©   (23.04.08 21:49)

Перекрыть protected метод TComponent'а procedure Loaded; virtual;


zensan   (2008-04-23 21:49:00) [14]

А как мне фрейму добавить такое собитие... OnLoaded


Восхищенный   (2008-04-23 20:27:00) [15]

> ZENsan ©   (23.04.08 16:29)  

> В конструкторе фреймов нужно узнать имя фрейма!
> Проблема в том, что фрейм ещё не назван в тот момент

Угу. А раз имени еще нет, то и узнать его нельзя.

В конструкторе - нельзя. А в Loaded - можно. И резолвить можно там же.


Reindeer Moss Eater   (2008-04-23 17:07:00) [16]

тем более.
создал фрейм, присвоил имя, вставил в список формстораджа.
главное сохранить постоянство имени в разных запусках.


ZENsan   (2008-04-23 17:02:00) [17]

Komponent, ne hranit nikakih pointerov, tolko puti po nih v tekstovo vide, a potom eti puti rezolvjatsja v konkretnie adresa i objekti cherez RTTI. RTTI nuzhno dlja property.


ZENsan   (2008-04-23 17:01:00) [18]

Удалено модератором


Reindeer Moss Eater   (2008-04-23 16:57:00) [19]

чума.....
сам создаешь, потом сам ищешь по имени, которое дал не ты.
борем трудности собой создаваемые?


ZENsan   (2008-04-23 16:57:00) [20]

Tak vot esli neskoljko identichnih freimov, to nuzhno uznatj imja freima v kotorom etot Button ili grid...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо