Как сделать установщик программы delphi

Добавил пользователь Morpheus
Обновлено: 10.09.2024

Сегодня я поведую вам как же все таки установить Delphi на отличную по всем параметрам операционную систему Windows 7 а и чем черт не шутит Windows 8.

Для этого нам понадобится диск с Delphi который мы с вами вставим в дисковод и запустим установщик, если он сам не запустился.Далее UAC потребует от вас элевации - согласитесь. Появляется помощник по совместимости программ, сообщит, что Delphi 7 совместима с Windows 7 не полностью:

Можете жать "Поиск решений в Интернете", но по моему опыту это не сильно помогает:

Сейчас жмите "Запуск программы". Открывается меню установщика: Выбирайте "Delphi 7", запустится мастер установки программы: Установка проходит без особых проблем. Можите жать "Next". Надо выбрать места для установки.Тут два варианта:

либо вы с выбором по-умолчанию соглашаетесь. Тогда после установки для работоспособности Delphi 7 вам надо сделать два дополнительных действия. - вы Delphi устанавливаете в другую папку, которая не требует для записи прав администратора. Этот способ не рекомендуется.

Далее установка продукта проходит как обычно.

После завершения установки найти Delphi вы можете в меню Пуск:

При запуске Delphi 7, опять помощник по совместимости программ появится, сообщая вам, что есть проблемы с этой программой:

Поиск решений не даст ничего.

Правда после этого сама среда всё же загрузится (хотя работоспособной и не будет). Дело в том, что приложению Delphi32.exe писать в папку Delphi7\Bin запрещено.

Изменение разрешений Нужно разрешить изменять содержимое этой папки обычным пользователям машины. Для этого открывайте папку с установленной Delphi , клик правой кнопкой на папку Bin - "Свойства"- "Безопасность" и "Изменить": Установите птичку "Изменение" для группы "Пользователи". Закрыть все окна по OK.

Изменяйте права для под папки Projects таким же образом.

Установка справочной системы

Тут указана ссылка на статью в базе знаний Microsoft и приведены ссылки на скачивание обновления для установки справочной системы. Скачиваете, устанавливаете - сюрпризов нет. Смотрите также на видео

Я довольно часто сталкивался с тем, что разработчики на Delphi (можно сказать традиционно) компилируют свои приложения "ручками", что далеко не production-решение, а со стороны выглядит кустарщиной и "делаем на-коленке", хотя продукты бывают весьма серьёзными и продаваемыми. Вероятно, это пошло ещё с тех пор, когда для автоматизации нужно было придумывать свои батнички, которые запускали компилятор командной строки dcc32 с нужными параметрами. Некоторые даже сделали свой "Публикатор" — Delphi-expert, который делает работу сервера сборок: компилирует (правда, открытый в IDE) проект, выставляя ему взятый из какой-то БД инкрементированный номер версии, записывает некий changelog и копирует это куда-то в сетевой каталог.

Я не буду вдаваться в исторический экскурс как было раньше. Я расскажу как есть/можно сейчас, и как это использовать для повышения эффективности своей работы.

Файл проекта современной версии Delphi — это .dproj -файл (здесь и далее я буду ориентироваться на Delphi 10 Rio, но с небольшими отличиями это верно для всех более ранних версий Delphi, начиная с 2007). В нём хранятся все настройки проекта, которые обычно изменяют в IDE (меню Project - Options (Ctrl+Shift+F11) ). В рамках данной статьи я сконцентрируюсь на "основных", которые понадобятся для демонстрации общих принципов: это Config — конфигурация, Platform — платформа, OutputDirectory — путь выходного файла и ConditionalDefines (директивы условной компиляции). Остальные настройки, если таковые нужно менять при сборке, я предлагаю выявить самостоятельно. Этот же .dproj -файл, если в него заглянуть обычным текстовым редактором, является ничем иным как скриптом сборки MSBuild (давайте создадим простое консольное приложение и назовём его DelphiAutomatedBuild):

Скрипты сборки MSBuild также используются для описания проектов, например, Visual Studio. Я коснусь некоторых деталей MSBuild, но я предлагаю читателю самостоятельно освоить его азы. Что нам это даёт? Это позволяет нам выполнить сборку Delphi-проекта из командной строки одной строчкой (что, в свою очередь, позволяет автоматизировать сборку проекта)

Если же читатель откроет командную строку в каталоге с проектом (hint: это можно быстро сделать, щёлкнув правой кнопкой мыши (ПКМ) на проекте в IDE — Show in Explorer, затем в Проводнике ПКМ — Открыть окно команд), то вышеприведённая команда не сработает:

т.к по умолчанию, пути к MSBuild-у в PATH нет. Так что добавим его туда:

Сборка запустилась, но завершилась с ошибкой. В чём же дело? Почему нет задачи build ?

Тут мы заглянем в .dproj -файл, там мы найдём следующее:

И если мы откроем файл в каталоге Delphi
c:\Program Files\Embarcadero\Studio\20.0\Bin\CodeGear.Delphi.Targets , то мы увидим там ещё один MSBuild-скрипт, в котором объявлена задача Build :

Т.е. нужно задать переменную окружения BDS ( $(VAR) в MSBuild разыменовывает как свойство (Property) VAR , заданное в скрипте, так и одноимённую переменную окружения), указать в ней путь к той версии Delphi, которая будет компилировать проект (да-да, один и тот же проект можно компилировать разными версиями Delphi, лишь заменив значение переменной окружения BDS ). Тогда скрипт проекта разыменует $(BDS) , найдёт общий .Targets файл из каталога Delphi и запустит задачу Build .
Сделаем это:

Та-дам! Проект скомпилировался. В выходном каталоге Win32\Debug лежит наш DelphiAutomatedBuild.exe .

Но это отладочная сборка (по умолчанию, новый проект активируется в Debug-конфигурации), а мы хотим для выпуска релиза собирать Release-конфигурацию (подробнее про конфигурации). В IDE это сделать легко, но это ручная работа, и это то, чего мы хотим избежать, то ради чего мы читаем эту статью. Заглянем опять в .dproj -файл, и заметим в его начале такую строку

Мы ж программисты, и понимаем, что если свойство/переменная Config , не задана, то по умолчанию она принимается равной Debug . Это как раз то, что мы меняем в IDE (поменяйте в IDE текущую конфигурацию на Release и сохраните проект — строка сменится на

в коде для контроля исполняемого файла добавим такое:

и убедимся, что conditional defines в настройках проекта для Release и Debug-конфигураций содержат RELEASE и DEBUG, соответственно

Так что нужно лишь задать свойство Config в нужное нам значение, и собираться будет нужная конфигурация:

Часто разработчики указывают путь отладочной (а то и релизной) сборки в какой-то каталог на своём диске, но мы автоматизируем сборку и подразумеваем, что выполняться она будет на сервере сборок, а получать выходные файлы непонятно где в файловой системе сервера — как-то неправильно. Значит, мы должны уметь задавать этот выходной путь. Заглянем опять в .dproj :

но что это? тут нет условия (если не задано), и свойство задаётся всегда, сможем ли мы его переопределить? попробуем

Та-дам! Появился каталог binaries , в котором — наш DelphiAutomatedBuild.exe . Как же так? Тот, кто уже освоил MSBuild , знает, что свойства, заданные при запуске MSBuild -а, имеют высший приоритет, и уже не могут быть переопределены в скрипте. Сейчас нас это устраивает. Но с этим мы ещё столкнёмся.

Выходной каталог мы менять научились. Теперь нужно собирать сразу и релизную, и отладочную версии (надеюсь, не надо объяснять зачем такое надо). Конечно, можно запустить сначала с одним параметром Config — Debug , затем — с другим — Release , но это потребует, во-первых, дублирования остальных параметров (например, DCC_ExeOutput и параметра версии сборки (об этом — ниже)), а во-вторых, это придётся учитывать и при конфигурировании сервера сборок, что влечёт дублирование и там (либо написание очередного батничка, что лишает встроенной поддержки MSBuild-а сервером сборок). Так что требуется выполнить всё ту же одну команду

но она бы выполнила сборку обеих конфигураций. Можно так? Конечно!
Напишем свою задачу Build . Поскольку есть нежелание менять что-то в файле, который меняет IDE (часто самым дурацким образом; кстати, есть три замечательных инструмента от автора эксперта MMX: DProjNormalizer, DProjSplitter и сумма их — ProjectMagician — для удобства отслеживания изменений .dproj -файлов), то сделаем отдельный файл проекта. Назовём его DAB.ciproj (CI-project, от CI — Continuous Integration):

и… получаем один файл DelphiAutomatedBuild.exe в binaries , той конфигурации, что собралась последней:

DCC_Exeoutput задался и для каждой задачи MSBuild — это хорошо, но каждая конфигурация скомпилировала файл в один и тот же каталог. Тогда зададим подкаталоги соответственно конфигурации:

и теперь на выходе мы имеем два файла

binaries\Debug\DelphiAutomatedBuild.exe и binaries\Release\DelphiAutomatedBuild.exe .

Теперь представим, что у нас есть желание/необходимость временно задавать conditional define при сборке проекта (например, у нас есть демо-версия, в которой мы ограничиваем функциональность нашей программы, если задано переменная условной компиляции TRIAL )

В нашем демо-коде это выглядит так

Добавим в Debug-конфигурацию conditional define TRIAL и посмотрим, куда оно прописывается в .dproj:

Ага, т.е. если задать /p:DCC_Define=TRIAL,

Сработало, но как-то не так, куда-то делись DEBUG и RELEASE, а нам такого не надо, т.к. у нас там обычно куча полезных define-ов.
А дело в том, что свойства заданные через командную строку имеют высший приоритет, и переопределяют значения в скриптах. Но выход есть.
Определяем переменную окружения DCC_Define :

С компиляцией разобрались, теперь можно настраивать сервер сборок, который бы после каждого изменения в центральном репозитории (я ориентируюсь на Git, но для того же SVN это тоже применимо) собирал нам проект, дабы мы ничего не забыли добавить в исходники, и прогонял тесты, буде таковые у нас есть, и мы всегда будем готовы выпустить релиз или отдать на тестирование уже готовую сборку.

Однако ж, при таких частых сборках может стать проблема нумерации версий. Какая? Каждая новая сборка будет иметь ровно ту версию, которая прописана в свойствах проекта, а менять её с каждым коммитом — как-то рутинно и не "по-нашенски", к тому же, зависит от разработчика человека (а что такое "человеческий фактор" — не мне вам рассказывать).

В рамках обычной для Windows/Delphi-проектов нумерации Major.Minor.Release.Build , нормальный сервер сборок, как правило, умеет увеличивать для каждой сборке число Release , и, естественно, передавать её в скрипты сборки. Однако ж, если мы посмотрим на то, как задаётся информация о версии в .dproj-файле

Любознательный читатель наверняка уже догадывается как примерно такое использовать.
Добавим в наш DelphiAutomatedBuild.dproj

(Условие "$(MSBuildToolsVersion) >= 4.0" необходимо для того, чтобы проект не падал с ошибкой при сборке в IDE, которая, как мы помним, использует MSBuild 3.5, который не поддерживает UsingTask)

Поставим в свойствах проекта "Include version information in project" и добавим вывод текущей версии (оставим это за скобками), и:

Заключение

Так мы научились автоматизированно собирать Delphi-приложения одной командой, что экономит нам время и нервы, в том числе, за счёт того, что позволяет переложить компиляцию и выпуск релизов на сервер сборок, и тем самым застраховаться от ситуаций, когда проект собирается только на машине разработчика. К тому же, позволяет автоматизировать простановку версии как каждой сборки (на каждый коммит), так и увеличение релизной версии при выпуске релиза.

В дальнейшем я ещё планирую рассказать

  1. как запускать статический анализ кода (на примере FixInsight, не реклама!) во время сборки
  2. как писать unit-тесты на Delphi (увы, некоторым приходится объяснять ))). И запускать их в пайплане сборки )
  3. как "прикрутить" сборку Delphi-проектов к GitLab CI
  4. а также, как можно использовать отладчик WinDbg, например, для поиска причин сбоя/падения приложений из-за библиотек, написанных на Delphi (ну, конечно же, как при этом интегрировать формирование необходимых для этого PDB-файлов в автосборку)

З.Ы. Буду рад ответить на любые вопросы, в том числе, в телеграме, как в личке, так и в чатах @Delphi_Lazarus и @DelphiCommunity

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Конфигурация компьютера
Процессор: AMD Athlon 64 3500+ Orleans
Материнская плата: ECS NFORCE4M-A, Socket AM2
Память: 1024Мб Hynix DDRII-667, 512Мб Digma DDRII-667
HDD: Hitachi 250Гб PATA, Samsung 750Гб SATA, Seagate 1.5Tb SATA
Видеокарта: PCI-E ATI Radeon X1300XT 256Мб 64bit(Sapphire)
Звук: On-Board
Блок питания: InWin 430W IW-P430J2-0
CD/DVD: -
Монитор: 24" Samsung 245T
ОС: WinXP

Ну обычно это делается с помощью PageControl.

Делаем свойство TabVisible в false.
Переключаться между страницами вот так:
Pagecontrol1.ActivePage:=TabSheet2;
либо можно вот так:
PageControl1.ActivePage:=PageControl1.FindNextPage(PageControl1.ActivePage,true,false);

Компания Embarcadero в 2018 году представила Delphi Community Edition — бесплатную версию легендарной среды разработки Delphi. Использовать её могут студенты, стартаперы, небольшие команды, некоммерческие организации. Условия использования: лицензия на использование продолжает действовать до тех пор, пока прибыль физического лица или компании от приложений Delphi не достигнет 5 000 долларов США, или штат команды разработчиков не превысит 5 человек.

Мы ставим Delphi в учебных целях, поэтому ее можно использовать бесплатно. А после заработка первых 5 тысяч долларов её можно приобрести: цены начинаются от 98 999 руб. (почти $1600).

С помощью Delphi Community Edition можно разрабатывать мультиплатформенные приложения на Windows, Android, iOS и macOS. В этой статье мы пошагово пройдём процесс установки среды и напишем тестовое приложение под Windows. Delphi всегда был инструментом для быстрого старта в разработке под Windows на языке Pascal, это мы сегодня и проверим.

Примерное время установки: около 40-60 минут.

1. Скачивание бесплатной версии Delphi

На почту вам придёт письмо с ключом — его лучше сохранить. После отправки формы начнётся процесс загрузки. Если загрузка не начнётся, ссылка будет также в письме. Письмо вам необходимо — если оно не пришло, проверяйте спам. Если вообще не пришло, регистрируйтесь заново на другой ящик. Я регистрировался дважды на разные email — один на доменную почту, второй на Gmail. Оба раза всё было ок. Вот как выглядит письмо:

2. Установка Delphi Community Edition

Установка Delphi

На этом экране я нажал кнопку Оptions — открылось окно, где можно изменить каталог установки и настройки: ярлык на рабочем столе и установка для всех пользователей. Эти опции я оставил включёнными, вы можете убрать. Каталог установки можно оставить этот.

Установка Delphi - шаг 2

Начнётся установка, через несколько минут появилось окно для ввода данных регистрации (серийного номера):

Ввод серийного номера при установке бесплатной версии Delphi Community Edition

Введите Serial number из письма в почте и нажмите Register.

Проблемы при установке Delphi

Cистема предложит пройти на web-регистрацию. Соглашаемся — жмём Yes (или копируем предложенный URL в браузер). Откроется окно регистрации через сайт. Жмёте Download, чтобы скачать файл с лицензией в формате txt.

Его нужно будет использовать: в диалоге Product Registration нажать Advanced. Затем Import в следующем окне и импортировать файл лицензии. Надеюсь, у вас всё получится.

3. Выбор платформ для установки

Выбор плафторм для установки в среде Delphi: Windows и Android

В рамках наших ближайших статей мы будем рассматривать разработку под Windows и Android, поэтому я выбрал только их. Для работы с экосистемой Apple вам понадобится платный ключ разработчика, поэтому ставить iOS и macOS имеет смысл, если вы действительно планируете этим заниматься. В любом случае можно будет доустановить недостающие компоненты позже.

Установка Delphi

Установка завершена. Можно приступать к разработке

4. Первичная настройка среды разработки Delphi

Окно Delphi

Первое окно при загрузке Delphi

Жмём Next, на следующем экране можно подключить систему контроля версий (пока можно пропустить), включить автосохранение файлов и оформления темы (рекомендую поставить эту галку), а также выбрать папку для сохранения проектов по умолчанию. Я рекомендую создать какую-либо папку в корне, например C:\work

Первичная настройка среды разработки Delphi

5. Создание проекта программы на Delphi под Windows

Откроется Welcome Page, на ней нажмите Create Windows VCL Application, чтобы создать простое приложение под Windows. (Также можно это сделать с помощью верхнего меню File -> New -> Windows VCL Application — Delphi)

Создать Windows приложение

Главная форма приложения на Delphi

Сохранение проекта

В рабочем каталоге создайте папку HelloWorld, зайдите в неё. Сохраните файл Unit1.pas (это единственный модуль вашего приложения. Рекомендуется давать им более осмысленные названия, но сейчас мы этот шаг пропустим).

Затем сохраните файл проекта, назвав его HelloWorld.dproj (так будет называться ваше приложение, в том числе запускаемый exe-файл).

Сохранение проекта в Delphi

Название исполняемого файла (exe) соответствует имени проекта

6. Создание интерфейса приложения

Изменение заголовка формы на Delphi

Добавим кнопку на форму. Найдите в правом нижнем углу экрана палитру компонентов и нажмите на Standart — вам откроется набор популярных компонентов. Два раза щёлкните на компоненте TButton — кнопка появится в самом центре формы.

Выбрать кнопку в палитре компонентов Delphi

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

В инспекторе объектов (по аналогии с изменением заголовка Form1) поменяйте Caption кнопки на «Нажми меня!«. Окно проекта в Delphi будет выглядеть примерно так:

Изменение заголовка кнопки в Delphi

Обращаю ваше внимание, что визуальная часть нашей программы уже готова. Оцените мощь Delphi, создать форму рабочего приложения можно за несколько минут!

7. Написание кода и запуск приложения в среде Delphi

Самое время написать свою первую строку кода. Щёлкните два раза на кнопку Button1 (Button1 — имя объекта, на самой кнопке уже написано «Нажми меня!«). Откроется редактор кода. Delphi автоматически создало событие, которое произойдёт после щелчка по кнопке TForm1.Button1Click.

Читайте также: