Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный хостинг на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 1892
∙ повысить рейтинг »
star9491
Статус: Студент
Рейтинг: 1325
∙ повысить рейтинг »
Евгений/Genia007/
Статус: Бакалавр
Рейтинг: 732
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Delphi и Lazarus

Номер выпуска:1508
Дата выхода:27.03.2010, 14:00
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:554 / 232
Вопросов / ответов:1 / 2

Вопрос № 177405: Доброго времени суток, Уважаемые Эксперты появился серьезный проект - мегабайт на десять исходного кода и 20и-30и форм не хочется каждый раз подключать формы и компилировать проект - так как можно нечаяно внести ошибки в уже готовый код - е...



Вопрос № 177405:

Доброго времени суток, Уважаемые Эксперты
появился серьезный проект - мегабайт на десять исходного кода и 20и-30и форм
не хочется каждый раз подключать формы и компилировать проект - так как можно нечаяно внести ошибки в уже готовый код -
есть идея собирать отдельные формы и динамически добавлять их в строку меню - что-то вроде плагинов которые будут работать с предыдущими - а значит известными- формами
подскажите как организовать передачу этих самых пунктов меню в начальную форму .
заранее Благодарю
С уважением, gRemm

Отправлен: 22.03.2010, 01:46
Вопрос задал: gRemm, 3-й класс
Всего ответов: 2
Страница вопроса »


Отвечает Лысенков Антон Анатольевич, Студент :
Здравствуйте, gRemm.

Как я понял Вам требуется оформить дополнительные формы как plugin-ы.

В статье Принцип создания плагинов в Delphi очень подробно описано как это делать.

Если коротко, это делается так:

1. Создаем dll библиотеку, в которой располагаем нужные нам функции и формы. Там же пишем функцию которая будет передавать основной программе наименование пунктов меню.
2. Создаем в основной программе функцию, которая подгружает dll из определенной директории и при помощи свойства Items TMainMenu, добавляет пункты меню. Пунктам меню в событие onclick присваиваем выполнение нужных функий из dll.

Ответ отправил: Лысенков Антон Анатольевич, Студент
Ответ отправлен: 22.03.2010, 09:17
Номер ответа: 260298

Оценка ответа: 3
Комментарий к оценке:

Спасибо за старание, но у меня не получилось,
...хотя я следовал "подробному" описанию ...

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 260298 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает Delph, Практикант :
    Здравствуйте, gRemm.
    Вне зависимости от того, станете ли Вы работать с плагинами, может оказаться полезным и такой подход. Выделяете в вашем проекте подзадачи. Если среди них есть схожие по смыслу и структурам данных, можно для них написать один обработчик, которому передаёте уточняющую информацию. Форма подстраивается под конкретную подзадачу и решает её. Конечно, написание модуля такой формы займёт существенно больше времени, чем в простейшем случае, но когда одна форма начнёт обслуживать полтора-два десятка схожих подзадач, Вы в полной мере оцените преимущества такого подхода.
    Далее. Некоторые из пунктов меню можно сделать неактивными (свойство Enabled) или невидимыми (Visible). При выполнении определённых Вами условий (например, когда пользователь открыл документ) нужные пункты можно активировать. Это проще, чем динамически менять состав меню, хотя в ряде случаев всё же придётся использовать динамические решения.
    -----
    Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.

    Ответ отправил: Delph, Практикант
    Ответ отправлен: 22.03.2010, 10:03
    Номер ответа: 260301

    Оценка ответа: 3
    Комментарий к оценке:
    извините, но вы не ответили на вопрос
    ваш ответ скорее является дополнительным советом и никак не относится к решению вопроса
    ps я делаю именно так как вы и описали - но я стараюсь написать универсальные формы, которые можно будет подключать к будущим задачам -
    меня не устраивает лишь то что нужно вручную прописывать строку меню, вставлять в нее код на исполнение и перекомпилировывать проект заново...

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 260301 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 03.03.2010

    В избранное