Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Вниз

IDE Wizard   Найти похожие ветки 

 
prosoft   (2004-12-27 10:33) [0]

Здравствуйте.
Дано: необходим мастер для создания фреймов. Репозиторий по определенным причинам использовать нет возможности.
Решение: Создается потомок от TFrame с нужным функционалом. Регистрируется как TCustomModule в IDE. Пишется мастер создания фрейма.
Проблема: Все регистрируется. Фрейм создается именно как фрейм. НО... IDE отказывается его видеть в списке добавления фреймов на форму. При следующем открытии проекта созданный фрейм волшебным образом превращается в форму... Где копать?


 
Petr V. Abramov ©   (2004-12-27 14:12) [1]

Регистрируемый CustomModule должен быть наследиком некоего FrameModule. В D6 он находится в coride60, к которому dcp, естественно, нету (:
 В D7 - ищите :)


 
prosoft   (2004-12-27 14:48) [2]

Мда... вот засада то... в D7 он находится в delphivclide70.bpl, dcp соответственно к нему нет....


 
Petr V. Abramov ©   (2004-12-27 21:46) [3]

если не нужны published свойства у фрейма, все проблемы теоретически решить можно.


 
prosoft   (2004-12-29 09:56) [4]

Нет, published свойства не нужны. Куда копать?


 
Юрий Зотов ©   (2004-12-29 12:37) [5]

> prosoft   (29.12.04 09:56) [4]

Если published свойства не нужны, то не нужна и регистрация CustomModule. Просто уберите ее. Wizard должен через IOTAFile сгенерить исходники PAS и DFM (если надо). Пример такой генерации можно посмотреть у Сергея Орлика (эксперт CFPack).


 
prosoft   (2004-12-29 16:09) [6]

Так и было первоначально сделано. Тем не менее дизайнер IDE не видит в созданном фрейме оного. Т.е. его нельзя кинуть на форму как обычный фрейм. Регистрировать в палитре - теряется смысл фрейма как такового...


 
Юрий Зотов ©   (2004-12-29 17:40) [7]

> Т.е. его нельзя кинуть на форму как обычный фрейм.
> Регистрировать в палитре - теряется смысл фрейма как
> такового...

Попробуйте добавить в проект юнит со свежесозданным фреймом.


 
Petr V. Abramov ©   (2004-12-29 20:27) [8]

> нельзя кинуть на форму как обычный фрейм
 Его можно положить через IOTAFormEditor.CreateComponent.
 Скорее всего (не помню), предварительно понадобится RegisterClass
 Но юнит с фреймом все равно обязательно должен быть открыт, можно в невидимом виде ( IOTAModuleCreator.GetShowForm)


 
Petr V. Abramov ©   (2004-12-29 20:28) [9]

Warning!
провено электроникой, но в D6


 
prosoft   (2004-12-30 08:32) [10]

Спасибо, буду пробовать.


 
prosoft   (2004-12-31 10:02) [11]

Вобщем вопрос решился очень просто. Надо было написать наследника от TCustomModule и перекрыть один метод


function TMyCustomModule.Nestable: Boolean;
begin
Result := True;
end;


Соответственно и регистрация

RegisterCustomModule(TMyFrame, TMyCustomModule);



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

Форум: "Компоненты";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
1-1127982410
Friend
2005-09-29 12:26
2005.10.23
загрузка файлов


14-1128273573
Palladin
2005-10-02 21:19
2005.10.23
Cache 5.0.15


14-1127914677
duk_777
2005-09-28 17:37
2005.10.23
Сайт и система


8-1117105281
Dadly
2005-05-26 15:01
2005.10.23
Как распознавать отсканированные отпечатки пальцев


14-1128106554
Pazitron_Brain
2005-09-30 22:55
2005.10.23
Спутник+LAN+Интернет=Всем интернет.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский