Конференция "Прочее" » Выбор структуры приложения с использованием пакетов
 
  • {RASkov} © (30.11.08 22:02) [0]
    Будьте добры, подскажите пожалуйста как лучше осуществить вот какую задумку:

    Хочу попробывать научится использовать пакеты(BPL) в приложениях.
    На сей момент задумка такая. Есть программа(exe)-загрузчик. Из себя представляет обычное приложение по умолчанию в делфи.
    Т.е. одна главная форма, на ней.... (вот тут вопросик что лучше?) Я пока остановился на TTabControl. Как вариант TPageControl или.... ??
    Суть такая: Форма, вверху закладки, так вот содержимое закладок должно быть в bpl'ках...

    Все это должно быть в динамике, добавили bpl в папку с плагинами, появилась новая закладка при следующем старте программы-загрущика...
    т.е. при старте приложения-загрузчика просматриваются файлы bpl и если пакет содежит "вкладку" (тут тоже вопрос), то добавить в
    TabControl1.Tabs.Add(имя вкладки из пакета).... так вот вопрос что лучше в пакете использовать.... Я пока остановился на TFrame...

    Вообщем у меня пока дуратское сообщение о том, что TFont не совместим c TFont.... :) Это мне уже знакомо, думаю разберусь, но вот подскажите вообще идеи по данной задумке.
  • Сергей М. © (30.11.08 22:07) [1]

    > у меня пока дуратское сообщение о том, что TFont не совместим
    > c TFont.... :) Это мне уже знакомо


    Притча о граблях)


    > подскажите вообще идеи по данной задумке


    Нормальная вполне себе задумка.
    Если с граблями отношения выяснить раз и на всегда.
  • monogandhi (30.11.08 22:22) [2]
    Пакеты - это просто #%!@#%^#@#$! какой-то. Неужели для того, чтобы использовать собственного потомка некоторого визуального компонента мне нужно оформлять его в виде отдельного пакета, отдельно компилировать и прочая и прочая?
    Это же морока какая и умножение сущностей без всякой меры.
  • Сергей М. © (30.11.08 22:25) [3]

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


    Нет.


    > отдельно компилировать


    Да. А как же без компиляции ? Без нее никуда)


    > и прочая и прочая


    В Коране об этом ничего не сказано)
  • monogandhi (30.11.08 22:27) [4]
    Сергей М. ©   (30.11.08 22:25) [3]

    А разъясните, пожалуйста, тогда как. Я пробовал просто отнаследовать и в dfm имя подменить, мне сказали чтобы больше так не делал. Пришлось делать пакет.
  • monogandhi (30.11.08 22:27) [5]
    monogandhi   (30.11.08 22:27) [4]

    Имеется в виду, среда ругалась на сие непотребство.
  • {RASkov} © (30.11.08 22:29) [6]
    > [1] Сергей М. ©   (30.11.08 22:07)

    Т.е. так и оставить (TTabControl в программе) и (TFrame в пакете) ?

    >>>>
    И если можно, коротко о граблях, пожалуйста... хотя бы о "TFont не совместим c TFont"
    т.е. как правильно создать в пакете фрэйм, и как его поместить на TTabControl...?


    > [2] monogandhi   (30.11.08 22:22)
    > Пакеты - это просто #%!@#%^#@#$! какой-то.

    Зря ты так.... я тоже раньше был такого же мнения, но... :)
  • Сергей М. © (30.11.08 22:30) [7]
    A причем здесь dfm ?
    Компоненты не нуждаются ни в каких dfm'ах - они прекрасно рождаются существуют сами по себе.
  • monogandhi (30.11.08 22:33) [8]
    Сергей М. ©   (30.11.08 22:30) [7]

    Вы что-то все уклончиво говорите. В [2] говорилось о потомке некоего визуального компонента из некой сторонней библиотеки (то есть стороннего пакета, который уже был установлен). Он присутствовал на форме, то есть инстанциировался средой. Насколько я понимаю, для этого нужно указывать его тип. Этого как раз и не удалось сделать.
  • Сергей М. © (30.11.08 22:37) [9]

    > {RASkov} ©   (30.11.08 22:29) [6]


    exe должен быть собран с опцией использования ран-тайм пакетов - вот и вся премудрость граблей
  • Сергей М. © (30.11.08 22:39) [10]

    > В [2] говорилось о потомке некоего визуального компонента
    > из некой сторонней библиотеки (то есть стороннего пакета,
    >  который уже был установлен). Он присутствовал на форме,
    >  то есть инстанциировался средой.


    В [2] об этом нет ни слова, не надо выдумывать задним числом.
  • monogandhi (30.11.08 22:42) [11]
    Сергей М. ©   (30.11.08 22:39) [10]

    Цитирую себя же, простите.

    >Неужели для того, чтобы использовать собственного потомка некоторого визуального компонента мне нужно

    Выходит, его нужно инстанциировать динамически без всякого упоминания в форме?
    Тогда мы теряем все прелести визуального редактирования свойств (компонент может быть достаточно сложным, но что делать, пакеты...
  • Сергей М. © (30.11.08 22:47) [12]
    Повторяю эту цитату:


    > использовать собственного потомка некоторого визуального
    > компонента


    Для этого достаточно объявить и реализовать наследника этого компонента. Где он будет объявлен, реализован и использован - об этом речь не шла. Равно как не шла речь и конкретно о дизайн-тайм.
  • {RASkov} © (30.11.08 22:51) [13]
    > [9] Сергей М. ©   (30.11.08 22:37)

    так... но тогда тут получается EXEшник маленького размера, т.е. нужно будет все библиотеки VCL прикладывать к екзе....
    А как сделать так, чтоб экзешнику не требовались никае внешние(VCL) БПЛ....?
  • Сергей М. © (30.11.08 22:51) [14]

    > его нужно инстанциировать динамически без всякого упоминания
    > в форме?


    Класс этого компонента должен быть зарегистрирован, иначе дельфийская стрим-система не будет знать о компоненте ничего и инстанцировать его автоматически не сможет.
  • monogandhi (30.11.08 22:53) [15]
    Сергей М. ©   (30.11.08 22:47) [12]

    Речь шла о том, нужно ли для этого делать пакет. Насколько я могу понять из ваших слов: "Для этого достаточно объявить и реализовать наследника этого компонента", то пакета создавать не нужно.
    Если под объявлением и реализацией наследника вы подразумеваете создание соответствующего класса-потомка, то у меня так не получилось сделать.
    Без создания пакета, он не появится на вкладках с компонентами. А замена имени его предка в форме вызывает маловразумительное сообщение дельфи о том, что вот этого имени тут-то не должно быть, и не удалить ли его?
    Выходит, что пакет создавать таки нужно. А вы говорите что не нужно. Мне кажется, что где-то здесь есть противоречие.
  • Сергей М. © (30.11.08 22:54) [16]

    > {RASkov} ©   (30.11.08 22:51) [13]


    > тут получается EXEшник маленького размера, т.е. нужно будет
    > все библиотеки VCL прикладывать к екзе


    И что этому мешает ?


    > как сделать так, чтоб экзешнику не требовались никае внешние(VCL)
    > БПЛ....?


    Собрать без вышеупомянутой опции.
    Но тогда придется распрощаться с изначальной идеей-фикс)
  • monogandhi (30.11.08 22:54) [17]
    Сергей М. ©   (30.11.08 22:51) [14]

    Можно ли это сделать, не создавая пакет, и если да, то как?
  • {RASkov} © (30.11.08 22:57) [18]
    > [16] Сергей М. ©   (30.11.08 22:54)
    > [13] {RASkov} ©   (30.11.08 22:51)

    если я ставлю данную галку и очищаю строку со списком бплок, то галка снимается.... и опять тажа ошибка :(
    можно конечно оставить какой-нибудь пакет и его дополнительно положить в папку с программой.... например специально для этих целей подготовленную...
    Но так не верно наверное, или как? :)


    > И что этому мешает ?

    Ну, не.... я так не расчитывал :)
  • {RASkov} © (30.11.08 22:58) [19]
    > [18] {RASkov} ©   (30.11.08 22:57)

    т.е. там под галкой есть строка со списком бпл... вот там можно оставить одну какую-нибудь и положить ее к программе в папку...
 
Конференция "Прочее" » Выбор структуры приложения с использованием пакетов
Есть новые Нет новых   [134447   +40][b:0][p:0.001]