Главная страница
    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.47 MB
Время: 0.037 c
4-1124482768
ronyn
2005-08-20 00:19
2005.10.23
Label и шрифты по-русски...


8-1116864991
кактусбел
2005-05-23 20:16
2005.10.23
Перекодировка из exe в swf и обратно


3-1126531368
Os
2005-09-12 17:22
2005.10.23
Зеркало базы


14-1127804254
Empleado
2005-09-27 10:57
2005.10.23
Небольшие заметки. Бельгия.


2-1127996286
Dimon777
2005-09-29 16:18
2005.10.23
Как передать SQL-запросу период времени в виде параметра?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский