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

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

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 05:45 29.05.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Тема Търся идея за тайпкастинг на създавани форми в dpr  
Автор NikB (любопитен)
Публикувано28.03.05 23:51



Имам два проекта, които са доста еднакви, поне на този етап.
Ако има нужда от подробности - ще пиша :)
Проектите са така направени, че някои от формите са наследници на еднакви родители. Например:
Проект 1:
tFormA1=class(FormA);
tFormB1=class(FormB);

Проект1.dpr съдържа:
Application.CreateForm(tFormA1, FormA);
Application.CreateForm(tFormB1, FormB);

Проект 2:
tFormA2=class(FormA);
tFormB2=class(FormB);

Проект1.dpr съдържа:
Application.CreateForm(tFormA2, FormA);
Application.CreateForm(tFormB2, FormB);

Главната форма е еднаква и при необходимост си ползва инстанциите FormА и FormB.
Бих могъл в dpr само да избирам класовете, а другаде да създавам инстанциите, но това май не е съществено.
Имам голямо желание да направя и dpr файловете еднакви (т.е. да има един dpr файл) и си мисля дали да ползвам:
а) условно компилиране (няма да има нужда да декларирам всички юнити в двата проекта);
б) параметри на командната линия по време на изпълнение;
в) някоя друга ваша свежа идея.
Та въпросът ми е: по какъв друг начин мога да създам формите, така че да са от различни типове при различните компилирания.



Тема Хих,нови [re: NikB]  
Автор Koтapakът нa Шpьoдинrep (Bloody Furious)
Публикувано29.03.05 08:29



ся ми хрумна че може да си проверяваш името на exe-то и съответно да пускаш съответния проект

There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.


Тема Това е подраздел на парам. на команданата линия :)нови [re: Koтapakът нa Шpьoдин]  
Автор NikB (любопитен)
Публикувано29.03.05 08:34



И в двата случея трябва да съм декларирал всички юнити в проекта. Това май ще се окажа най-приемливото решение :)

И остава опасението, ако някой beduser преименува изпъкнимия файл.



Тема Re: Това е подраздел на парам. на команданата лининови [re: NikB]  
Автор andrew_nikoloff (bugbuster)
Публикувано29.03.05 09:05



За да не декларираш всички юнити май единственият начин е условната компилация. Другото всичко е рънтайм и ще си му трябват юнитите :-/
Може би можеш да си поиграеш да отделиш формите в динамични модули - bpl или dll. Ако ти се занимава - това май е някаква решение...



Тема Re: Това е подраздел на парам. на команданата лининови [re: andrew_nikoloff]  
Автор PhantomASМодератор ()
Публикувано29.03.05 09:16



<<<< Може би можеш да си поиграеш да отделиш формите в динамични модули - bpl или dll. Ако ти се занимава - това май е някаква решение... >>>

Не само някакво ами и единственото ;-) - а пропо стига с тези dll-та - само ядове с тях ;-)

Честно казано нищо не разбрах от първото обеснение, но ще рискувам да дам идея.
1. Натъпкваш всички неща използващи се в двата проекта в една библиотека
2. Не забравяш да си регистрираш формите RegisterClass !
3. Махаш дефинициите на тези форми от dpr-то - щото няма как и си създаваш динамично формите
4. относно динамичното създаване - ползваш GetClass като го cast-ваш до Те_твойта_форма.
5-то всъщност 3.а. - зареждаш си динамично bpl-то

---


Тема Re: Това е подраздел на парам. на команданата лининови [re: andrew_nikoloff]  
Автор NickBass (бас-програмист)
Публикувано29.03.05 09:52



Това е елегантен начин. Прав си. Хайде и аз да предложа нещо. Какво ще кажеш за един OleAutomatition сървър?

1. Написваш проект A и B с всичките му форми и каквото трябва там
2. Добавяш им по едно Type library
3. В Type library-то слагаш един Automatition object и към него декларираш методи и пропъртита, еднакви и за двата проекта.
4. Написваш проект C, който се обръща към инсталирания OleAutomatition server.
Той може да е Project A или Project B.



Тема Да, DLL или BPL - ще пробвамнови [re: andrew_nikoloff]  
Автор NikB (любопитен)
Публикувано29.03.05 12:00



С БПЛ до сега не съм се пробвал - ама има достатъчно написано по въпроса




Всички темиСледваща тема*Кратък преглед
Клуб :  


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

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