Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 20:21 25.06.24 
Клубове/ Компютри и Интернет / Delphi Пълен преглед*
Информация за клуба
Тема Достигане до всички форми във DesignTime
АвторLSS (Нерегистриран) 
Публикувано16.09.05 14:57  



Здравейте народе!

Слбъсках се с едно на пръв поглед нестрашно проблемче, но ето, че вече камара часове ровя в помощната система на Delphi-то и в нета и не намирам нищо по въпроса.

Първо, ако засягам коментирана тема, моля да ме извините, но наистина не мога преровя всички постинги.

Ето и какъв е проблема. Във връзка с изискванията на една компонента над която се мъча в момента се наложи, да се сдобия с референции на всички обекти от тип TForm, TDataModule, TFrame и така нататък, в DesignTime времето . Разбира се логично е човек да се захване с приятеля Designer на TPropertyEditor или TComponentEditor. Логично но не върши работа. Успях да се сдобия със списък с имената на всички форми добавени в проекта, като използвам callback функция викана от Designer.GetProjectModules(Proc) и съответно се надявах да получа и референции към самите форми като да кажем обходя тоя списък и поискам Designer.GetComponent(ComponentName).
Оказа се, че последната функция ми връща валидна референция, само за тази форма, за която в момента се е Hook-нал IDesigner-а. За всички останали форми са Getcomponent(ComponentName) връща nil.

И така... реших, че валидно копие се потдържа само за текущо редактираната форма в Designer-а (вече не мисля така) и реших, че мога да си създавам сам референциите за формите които ме интересуват... За целта реших да използвам низовата променлива DesignClass на callback функцията дето я подавам на Designer.GetProjectModules(Proc) и после да направя нещо от рода:

Designer.CreateComponent(TForm(GetClass(DesignClass)), nil)

за да се с сдобия с така желаната референция, ама уви низа DesignClass се оказа празен за всяка една форма дето присъства в проекта. Дори и за Текущата...

Друго което ми хрумна, е по някакъв начин да сменям Root-а на Designer последнователно с всяка една форма (нали имам все пак списък с имената им), ама не намерих начин да го направя... Първо Root е само за четене и второ все още не съм намерил начин да разбера коя форма от кой клас е.

Та това ми е проблема.
Благодаря на всички дето имаха търпение да изчетат до тук, както и на всички, които евентуално могат да помогнат с нещо по въпроса.

Ако трябва да го обобщим, проблема се свежда до намирането на refereances на всички обекти TPersistent и TComponent в текущо редактиран проект в Delphi IDE, кото ще рече че говорим за DesignTime.

Благодаря предварително.

ПП. Става дума за Delphi 6



Цялата тема
ТемаАвторПубликувано
* Достигане до всички форми във DesignTime LSS   16.09.05 14:57
. * Явно няма интерес към темата simple_code   16.09.05 22:47
. * Re: Явно няма интерес към темата Dark_Dirk   18.09.05 21:44
. * е... simple_code   18.09.05 23:55
. * Re: е... Mixy   19.09.05 12:27
. * Re: е... simple_code   19.09.05 14:32
. * Re: е... Mixy   19.09.05 21:54
. * Re: е... simple_code   20.09.05 01:18
. * Re: е... Dark_Dirk   19.09.05 12:51
. * Re: е... simple_code   19.09.05 14:18
. * Re: е... Dark_Dirk   20.09.05 14:21
. * Re: е... simple_code   20.09.05 18:13
. * Re: е... andrew_nikoloff   20.09.05 18:45
. * Re: е... simple_code   21.09.05 13:19
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.