2010-02-28 3 views
3

Я сделал пару программ, которые я выпускаю как бесплатное на своей веб-странице. Одна из этих программ использует TSpinEdit для ввода некоторого числа. Он работает очень хорошо, поэтому у меня нет причин использовать что-либо еще.Пользовательские компоненты - как управлять?

Однако вчера пользователь сказал мне, что ему не нравятся маленькие кнопки. Я не могу не согласиться, потому что, ну, они есть. К сожалению, единственный способ сделать кнопки больше - сделать управление больше, и это действительно не выглядит красивым. Вместо этого я решил немного изменить компонент, чтобы кнопки располагались рядом друг с другом, а не друг над другом.

Теперь, Delphi не позволит мне включить этот новый компонент непосредственно в DFM, потому что он в настоящее время не установлен - это просто файл, добавленный в проект. Очевидно, было бы неплохо изменить это - не только потому, что это позволит мне сохранять элементы управления в DFM, но также потому, что это позволяет мне повторно использовать измененный компонент более легко - так что мне придется сделать пакет и добавить его туда. Все в порядке, я могу это сделать.

Но это подводит меня к моему вопросу: как мне управлять этим пакетом?

Есть ли проблемы с добавлением каких-либо других компонентов, которые я делаю в один и тот же пакет, или было бы лучше, если бы я сделал несколько пакетов и разделил их на логические группы?

Я использую управление версиями, конечно, поэтому распространение изменений кода компонента между моим рабочим столом и моим ноутбуком не является проблемой - но мне нужно будет перестраивать пакеты вручную на каждой рабочей станции каждый раз, когда я делаю изменения, или есть ли трюк, который я должен использовать?

ответ

2

У меня есть несколько «моих» компонентов, которые сгруппированы в один пакет. В вариантах пакета установите «перестроить по мере необходимости». Я считаю, что это делает трюк, по крайней мере, в моем случае (я разрабатываю приложение как на своем домашнем ПК, так и на своем ноутбуке, используя SVN) - он перекомпилирует пакет во время компиляции проекта, но это среда исполнения (общий пакет, для приложение и его плагины). Я не уверен, как насчет времени разработки, я боюсь, вам придется переустанавливать их вручную каждый раз, когда вы что-то меняете ...

Или, если вы используете тот же delphi versio, почему бы вам не поместить двоичные файлы (.bpl, .dcp) в папке общего доступа (версии)?

+0

Хотя я мог бы добавить BPL в свой SVN-репозиторий, я * действительно * не люблю добавлять двоичные файлы в управление версиями. Это похоже на действительно плохой взломать, и там должен быть лучший способ справиться с этой проблемой. –

+0

проблема в том, что вам нужно обновить двоичный файл перед запуском delphi ... может быть, какой-то тип сборки-когда-обновляется? Я не уверен, позволяет ли TortoiseSVN/SVNClient подключать скрипты ... – migajek

+0

Мне не особенно нужно обновлять рабочую копию перед запуском Delphi - у меня нет SVN, интегрированного с Delphi, поэтому я буду делать это так или иначе. TortoiseSVN * делает * поддержку скриптов на стороне клиента, поэтому можно было бы обойти проблему, заставив перестроить. Мне просто нужно установить компоненты в среду IDE и установить соединение на каждой машине. Это, безусловно, выполнимо, и мне было бы намного счастливее делать это так, но все равно кажется, что должен быть лучший способ - даже если у меня создается впечатление, что нет. –

0

У нас есть несколько различных приложений, которые создаются с немного разными наборами компонентов.

Мы создаем группу проектов, которая включает основное приложение и все компоненты (кроме стандартных Delphi), которые использует приложение. У нас есть папка под папкой приложения для хранения источника для всех компонентов. Папки компонентов обычно совместно используются в системе управления источниками, чтобы избежать дублирования, но при необходимости могут быть разветвленными.

Мы всегда создаем ярлыки для запуска Delphi, настроенного для конкретного приложения, над которым мы работаем (с использованием флага командной строки -r).

Все это означает, что мы можем создать ветвь релиза, которая включает компоненты на момент выпуска, и мы можем иметь несколько экземпляров Delphi, каждый из которых настроен на использование правильных компонентов для версии приложения, над которым работает ,

Если вы придерживаетесь этого подхода, вы должны создать отдельные каталоги вывода BPL/DCP для каждого экземпляра Delphi и убедиться, что вы удалили каталог BPL по умолчанию из пути поиска.

0

Один пакет cs Несколько пакетов: это сводится к тому, как вы распространяете свое программное обеспечение.Наличие нескольких пакетов для нескольких компонентов позволяет вам более точно контролировать то, что вам нужно распространять (в виде исходного кода или пакетов времени исполнения). Наличие одного большего пакета wold будет проще для вас как разработчика: только один большой пакет для восстановления, когда вы вносите изменения.

Для моих компонентов я решил использовать несколько пакетов; Теперь я сожалею о своем решении, но слишком поздно менять. Когда мне нужно настроить новую рабочую станцию, мне нужно выяснить, какие пакеты необходимо включить и в каком порядке их нужно компилировать. Если бы я использовал только один большой пакет, я бы просто взял пакет из Control Version (я использую JEDI) и BUILD, вот и все. Большой пакет будет работать для меня просто отлично, потому что я не распространяю исходные файлы, и я не распространяю пакеты времени выполнения.

+0

Файл .BPG (теперь .groupproj в новом Delphis) со всеми пакетами, чтобы вы могли выполнить сборку «Все» и просто сделать установку из пакета времени разработки регистрации. И вы можете включить его в систему управления версиями. –

2

Как я могу управлять этим пакетом?

Вы можете добавить любой компонент в свой пакет, а установка пакета устанавливает все эти пользовательские компоненты в Delphi IDE.

Пакет может быть временем выполнения, временем разработки или обоими. Пакет среды выполнения не имеет взаимодействия IDE и не будет устанавливаться в среде IDE. Пакеты времени выполнения предоставляют процедуры и классы, используемые другими пакетами во время выполнения. Пакеты времени разработки - это пакеты, которые взаимодействуют с IDE.

Обычно вы используете пакеты, предназначенные только для разработки, для установки экспертов IDE или редакторов свойств. На самом деле все, что только взаимодействует с IDE, и не имеет ничего общего с скомпилированным файлом.

Пакеты, которые являются как временем выполнения, так и временем разработки, являются теми, которые вы обычно добавляете в свои компоненты, и устанавливаете их в IDE. Такие пакеты взаимодействуют с IDE, но также скомпилированы в подготовленный файл.

Итак, если у вас есть поддерживающие подпрограммы и классы, которые будут использоваться группой ваших компонентов, вы можете поместить их в пакет времени выполнения и использовать этот пакет как необходимый пакет для других пакетов.

Если у вас есть код, который настраивает IDE или добавляет некоторые функции в среду IDE, поместите их в пакет времени только для разработки.

Если у вас есть компоненты, которые будут использоваться в ваших скомпилированных приложениях, вы можете поместить их в пакеты времени исполнения и времени разработки.

Я использую систему управления версиями, конечно, так распространяющихся изменения компонентного код между моим рабочим столом и мой ноутбук не проблемы - но мне нужно восстановить пакетов вручную на каждую рабочую станции каждых время я делаю изменение, или есть трюк, я должен использовать?

Если вы используете ту же версию Delphi как в вашем ноутбуке и ПК, то после изменения исходного кода, вы должны восстановить пакет по крайней мере один раз, чтобы создать скомпилированный BPL-файл для вашего пакета. После того как файл BPL скомпилирован, вы можете скопировать его на другую машину (в папку, в которой вы храните файлы BPL. По умолчанию в Delphi 2010 это C: \ Users \ Public \ Documents \ RAD Studio \ 7.0 \ Bpl) , скопируйте файлы DCU на этот компьютер и запустите Delphi IDE на этом компьютере. Delphi IDE автоматически загрузит новый BPL-файл для вас. Итак, если все ваши машины используют одну и ту же версию компилятора Delphi, вы можете скомпилировать свой пакет один раз и использовать скомпилированный пакет на других машинах без переустановки пакета.

Смежные вопросы