Как сохранить приложение лазарус
В этом уроке мы создадим свою первую программу, познакомимся с редактором исходного кода, узнаем как компилировать и выполнять программу.
Наша программа будет взаимодействовать с пользователем, Вы сможете поэкспериментировать с нею. Не бойтесь экспериментировать, Вы не сможете сделать что-либо непоправимое. И в то же время истинные и прочные навыки эффективной работы достигаются только путем самостоятельного экспериментирования.
Для создания графического интерфейса Lazarus предоставляет программисту палитру компонентов пользовательского интерфейса. Программисту требуется всего лишь выбрать на палитре нужные компоненты и с помощью мыши перенести их на форму.
После того, как компонент размещен на форме, он становиться объектом, который имеет свои установленные по умолчанию свойства. Эти свойства можно просматривать и изменять с помощью окна Свойства.
В нашей первой программе при создании интерфейса пользователя будем использовать три компонента: TForm (Форма), Label (Надпись) и TButton (Командная кнопка).
Так как мы будем использовать их впервые, давайте познакомимся с ними подробнее. Нам нужно знать основные свойства этих компонентов и их назначение, чтобы можно было их настраивать.
Теперь, когда вы изучили новые компоненты, мы загрузим среду программирования и создадим свой первый проект.
Проект «Первая программа»
Задание. Создать проект, который после щелчка на кнопке выводит в поле надписи текст: «Я программирую. »
Создать интерфейс программы по образцу:
Разместить надпись и кнопку на форме и установите значения свойств, перечисленные в таблице. Когда вы это сделаете, форма примет такой вид , как на рисунке.
В следующих заданиях, когда Вы лучше освоите среду Lazarus, примеры форм будут сопровождаться только листингами исходного кода. От Вас ожидается, что вы , глядя на формы и листинги, сами догадаетесь, как должны быть установлены свойства компонентов.
Ход выполнения проекта
- Загрузите Lazarus. Создайте новый проект.Для этого:1) Выполнить команду Проект => Создать проект …2)В появившемся диалоговом окне выбрать слово Приложение и нажать кнопку ОК.
2. Сохранить созданный проект.
Для этого:
1) Выполнить команду Проект – Сохранить проект как… Откроется окно Сохранить проект.
2) Не выходя из этого диалогового окна Создать новую папку Primer_1 для файлов вашего проекта (проект будет содержать несколько файлов), открыть ее и щелкнуть по кнопке Сохранить.
Тем самым мы сохраним файл Project1, содержащий сведения о проекте.
Сразу же откроется окно Сохранить Unit1 для сохранения программного кода проекта (файл Unit1.pas), в котором также необходимо щелкнуть по кнопке Сохранить.
Кроме этих двух файлов в папке проекта создается автоматически еще несколько файлов, в том числе – unit.lfm, который представляет собой файл с полными данными о проектировщике формы. Позиция, размер, расположенные компоненты и пр.
Папка проекта должна содержать следующие файлы:
- Разместите на форме компоненты Надпись (Label) и Кнопку (Button). Разместить компонент на форме можно одним из двух способов.
Первый – дважды щелкнуть мышью на значке компонента, расположенного на палитре компонентов. Однако при этом компонент попадет не в то место, куда Вы хотите, а в левый верхний угол формы.
Второй – щелкнуть на значке компонента (при этом он выделяется) и щелкнуть на форме. Таким образом компонент можно поместить в любое желаемое место на форме. - Установите новые значения для свойств, перечисленные в таблице.
Напишите программный код для процедуры обработчика события щелчок на кнопке. Пока мы это не сделаем, кнопка не будет работать. При нажатии на кнопку ничего не будет происходить.
Для этого:
1) Выполните двойной щелчок по кнопке. Откроется редактор исходного кода, в котором, после кода созданного автоматически, добавиться новая процедура -TForm1.Button1Click – обработчик события щелчок на кнопке (анг. Button – кнопка, Click – щелчок).
Сейчас процедура обработчика события пустая, при нажатии кнопки она ничего не делает.
2) Чтобы процедура выполнила необходимые действия, напишите соответствующий код между операторными скобками begin и end. В нашем случае это оператор присваивания, который изменяет свойство Сaption (текст надписи) объекта Label1 на новое значение:
Вводя код, обратите внимание на подсказку, появившуюся после ввода точки, следующей за label1. Подсказка представляет собой всплывающее меню, в котором перечислены допустимые свойства и методы компонента label1
С помощью мыши вы можете выбрать из списка нужное свойство или метод.
Другой способ: вы можете начать вводить имя свойства, при этом Lazarus автоматически прокручивает список и находит имена, первые буквы которых совпадают с вводимыми буквами. Это поможет вам, если вы забыли точное имя. Если теперь нажать <Space> или <Enter>, то Lazarus вместо вас автоматически завершит ввод имени.
- Закончив вводить код, выполните программу. Это можно сделать одним из трех способов:
1) щелкнув по кнопке Run (Выполнить) на панели инструментов;
2) выбрав команду Run-Run в главном меню;
3) нажав клавишу <F9>.
Далее этот файл, в случае успешного создания, запускается на выполнение.
Знакомство с настройками IDE Lazarus, с составом проекта, изучение новых компонентов TLabel и TEdit.
Настройка IDE
Чтобы облегчить дальнейшую работу с Lazarus, выполним некоторые настройки его IDE . Загружайте Lazarus. По умолчанию включена опция загрузки последнего проекта, поэтому у вас должен был загрузиться проект из первой лекции. Это очень удобно, если вы работаете над каким-нибудь большим проектом, на разработку которого уходит не один день. Однако это будет неудобно при изучении Lazarus - ведь мы будем делать множество небольших программ, выполняющих разные задачи, и для этого нам нужно будет вначале закрыть старый проект, а затем создать новый. А это неудобно.
Выберите в главном меню команду "Сервис -> Параметры", откроется окно "Параметры IDE". Нам нужен раздел "Файлы", расположенный в ветке "Окружение":
В этом разделе имеется флажок "Открывать последний проект при запуске". Если этот флажок включен, то каждый раз при запуске будет открываться последний проект. Если выключен - будет создаваться новый проект, что нам и нужно. Выключим его, нажмем кнопку "ОК", закроем Lazarus и снова запустим. Ну вот, совсем другое дело, создался новый проект. Ничего в проекте не меняя, просто сохраним его в папку
C:\Education\02-01
(вы помните о нашем договоре по поводу наименования папок с проектами?). Нажмем кнопку "Запустить" на Панели инструментов (зеленая стрелочка вправо), чтобы проект скомпилировался, и полученная программа сразу же загрузилась в память . Появится простое окошко нашей программы, ведь в ней ничего, кроме формы, нет. Закройте полученную программу, оставив Lazarus с проектом открытым.
Затем откройте папку с проектом с помощью Проводника Windows или привычного для вас файлового менеджера ( Total Commander, Far , и т.п.). В Проводнике установите вид отображения "Таблица". Вы увидите примерно такую картинку:
Наша программа получила название project1.exe, в колонке "Тип" значится "Приложение". А вот в колонке "Размер" указано 14 474 байта (у вас может чуть отличаться, это не страшно). Ого! Программа с пустым окошком, которая совсем ничего не делает, "весит" больше 14 мегабайт . Как такое может быть?!
Дело в том, что при компиляции Lazarus по умолчанию добавляет в программу всевозможную отладочную информацию, в результате чего и получается такой большой размер. Это полезно, когда вы отлаживаете программу (об отладке и тестировании программ мы будем говорить в другой лекции), но лишнее в нашем случае. К сожалению, отключить эту функцию можно только для текущего проекта. Делается это так: выберите команду Главного меню "Проект -> Параметры проекта":
В разделе "Компоновка" снимите флажок "Генерировать отладочную информацию для GDB", нажмите "ОК" и заново запустите программу. После того, как программа запустится, закройте ее и снова посмотрите на полученный размер. Ну вот, теперь порядок, размер чуть больше полутора мегабайт . Тоже немало, если разобраться, но вполне терпимо, учитывая подключенные к проекту стандартные модули с поддержкой кроссплатформенности. В дальнейшем вы можете либо не обращать внимания на размер учебных программ - снимать этот флажок (после отладки, если она нужна) только для своих готовых реальных проектов, либо снимать его в каждом новом проекте. Это на ваше усмотрение. А если вам хочется получить совсем уж малый размер программы, то можно дополнительно воспользоваться каким-нибудь программным упаковщиком. ASPack, например, позволяет сжимать *.exe и *.dll файлы до 80%! Такой упаковщик, кстати, не только сжимает, но и шифрует вашу программу, создавая ей дополнительную защиту. Сильного хакера это, правда, не остановит, но лишней головной боли ему прибавит.
Также в настройках можно изменить размеры ячеек в сетке из точек, которая отображается в Редакторе форм. Эта сетка нужна для того, чтобы программист мог выравнивать компоненты на форме относительно друг друга. Выберите команду Главного меню "Сервис -> Параметры" и в разделе "Окружение" выберите "Редактор форм". В правой верхней части расположен раздел "Сетка", где можно изменять ее размеры ( по умолчанию, установлено по 8 пикселей для оси X и для оси Y), разрешать или запрещать показ сетки, и т.д. Некоторые программисты предпочитают делать ячейки сетки меньше - 6 или даже 4 пикселя по обеим осям, мотивируя это тем, что чем чаще сетка, тем точнее можно подровнять компоненты. Может быть, они и правы, однако имейте в виду, что разработчики Lazarus выставляли по умолчанию наиболее удобные параметры. В общем, и тут установите настройки на свой вкус, или оставьте их по умолчанию.
Из чего состоит проект
Мы то и дело повторяем слово "Проект". В первой лекции мы говорили, что проект - это набор связанных файлов различного типа, из которых, в конце концов, после компиляции, получается программа.
Из каких же файлов состоит проект?
Выберите команду Главного меню "Сервис -> Параметры", и в ветке "Окружение" перейдите на раздел "Файловые фильтры". Вы увидите 6 основных типов файлов, которые могут встречаться в проекте:
- Модуль Lazarus (*.pas;*.pp)
- Проект Lazarus (*.lpi)
- Форма Lazarus или Delphi (*.lfm;*.dfm)
- Пакет Lazarus (*.lpk)
- Исходный код проекта Lazarus (*.lpr)
- Иной файл Lazarus (*.inc;*.lrs;*.lpl)
Если мы перейдем в папку с нашим проектом, то увидим, что он состоит из восьми файлов:
- project1.exe (Исполняемый файл программы).
- project1.ico (Файл с "иконкой" проекта - изображением в виде лапы гепарда, которое появляется в верхнем левом углу окна программы).
- project1.lpi (Информационный файл проекта). Если вы желаете открыть данный проект в Lazarus, то запускать нужно именно этот, информационный файл.
- project1.lpr (Исходный файл проекта). Запуск этого файла также приведет к запуску Lazarus с загрузкой данного проекта.
- project1.lps (Конфигурация проекта в виде xml-кода)
- project1.res (Файл ресурсов, используемых в проекте)
- unit1.lfm (Файл формы модуля. В нем в текстовом виде отображены настройки всех компонентов, используемых в модуле. Редактировать этот файл в ручную настоятельно не рекомендуется, для редактирования этих данных нужно использовать Редактор форм).
- unit1.pas (Исходный код модуля на языке Object Pascal).
Файлы с именем project1 - это файлы всего проекта в целом, файлы с именем unit1 - это файлы модуля.
Модуль> - это отдельная единица исходного кода, выполненная в виде файла с расширением *.pas. Совокупность таких единиц составляет программу.
Когда мы создаем окно, то для него создается два файла: модуль - файл *.pas с исходным кодом, и файл *.lfm, в котором содержатся настройки используемых на форме компонентов. Текст модуля мы можем видеть в Редакторе кода. Однако модуль не всегда имеет окно, это может быть и просто текстовый файл с исходным кодом. О модулях и их разделах мы поговорим подробней в одной из следующих лекций. В нашем проекте всего один модуль , но вообще их может быть сколько угодно. И каждый модуль будет представлен этой парой файлов.
Кроме того, в папке проекта находится папка lib, в которой располагаются подключаемые к проекту данные и информация о компиляции. Если же вы изменяли проект, и сохраняли эти изменения, то появится также папка backup, в которой будут храниться резервные копии старых вариантов проекта.
Нередко программист добавляет в проект и свои типы файлов. Например, в проекте можно использовать базу данных, какой-нибудь текстовый файл или ini-файл для сохранения пользовательских настроек. Разумно располагать эти файлы также в папке с проектом.
Теперь пару советов по поводу наименования проекта и модулей. Проект следует называть так, как мы хотим, чтобы называлась наша программа . Например, проекту из первой лекции было бы уместней дать имя "Hello" вместо нейтрального "project1".
Модули же нужно называть, исходя из их значения. Всегда в проекте есть главный модуль. В наших проектах пока что было по одному окну. Модуль , созданный для этого окна, и будет главным. В учебной литературе есть множество рекомендаций, как обозначать модули, остановимся на одной из них. Давайте договоримся в будущем главный модуль называть Main (англ. main - главный), а другим модулям давать смысловые названия, например, Options, Editor и т.п. Форму этого модуля (точнее, свойство Name формы) будем называть также, но с приставкой f-, обозначающей форму. То есть, fMain , fOptions , fEditor и так далее. Закрепим этот материал на практике.
В запросе вместо имени проекта project1 укажите новое имя Hello, не забывайте, что мы договорились сохранять проекты в папки с именем по номеру лекции, и номеру проекта в ней. В нашем примере это будет
C:\Education\02-02\
Как только вы нажмете кнопку "Сохранить", выйдет запрос на сохранение главного модуля. Форму мы назвали fMain, значит, модулю дадим название просто Main. В Lazarus строчные и заглавные буквы не различаются, однако для удобочитаемости кода лучше приучиться использовать заглавные буквы, чтобы выделять названия. Например, FileEdit, SaveAll и т.п.
В свойстве Caption формы впишем слово "Приветствие" (разумеется, без кавычек), это будет более понятным заголовком для окна. Не забывайте после ввода новых значений свойств в Инспекторе объектов нажимать <Enter>, чтобы изменения вступили в силу. Теперь установим на форму компонент TLabel (метку), который позволит выводить на форме текст. Компонент находится на вкладке Standard:
Щелкните мышкой по метке, затем по форме, в верхней части окна. Поскольку метка у нас одна, то можно оставить ей имя (свойство Name ) по умолчанию - Label1 . А вот в свойстве Caption метки напишите:
Как вас зовут?
Ниже метки поместите компонент TEdit - редактируемое текстовое поле , в котором пользователь сможет написать что-то:
У этого компонента свойство Name также оставим по умолчанию - Edit1 . Как вы можете заметить, у этого компонента свойства Caption нет, зато появилось свойство Text - именно тут и содержится текст, отображенный в поле . По умолчанию, он совпадает с именем компонента. Просто очистим это свойство, удалив из него старый текст (не забывайте про <Enter>).
Еще ниже установим кнопку TButton. Оставим ее имя по умолчанию, а в свойстве Caption напишем
Изменим положение и размеры компонентов и самой формы так, чтобы форма приняла примерно такой вид:
Теперь запрограммируем нажатие кнопки. Щелкните по ней дважды, чтобы сгенерировалось событие, и автоматически открылся Редактор кода. В месте, где мигает курсор , впишем следующий код:
Редактор кода должен выглядеть так:
Сохраните проект и запустите его. Когда программа загрузится, впишите в окне Edit1 свое имя и нажмите кнопку "Выполнить". Вы должны получить примерно такой результат:
Вы можете сколько угодно раз менять имя в текстовом поле и снова нажимать кнопку "Выполнить", получая приветствие уже с другим текстом. У нас получилась настоящая интерактивная программа , то есть, программа , взаимодействующая с пользователем.
В дальнейших лекциях мы не будем так подробно останавливаться на том, как сохранять проект или модуль , ограничиваясь кратким
тема "Создание, сохранение, компиляция и запуск приложений.
Просмотр содержимого документа
«Практическое занятие 17»
Урок 3 . Создание, сохранение, компиляция и запуск приложений.
О бъектно-ориентированное программирование – это методика разработки программ, в основе которой лежит понятие объект.
Создание проектов : Файл – Создать - Проект – Приложение.
Сохранение проектов. Любой проект в Lazarus – это совокупность файлов, из которых создается единый выполняемый файл.
В простейшем случае список файлов проекта имеет вид:
Файл с расширением .lpr – файл проекта.
Файл с расширением .lpi – файл описания проекта.
Файл с расширением .lfm – файл формы.
Файл с расширением . p as – это программный модуль формы. По умолчанию этот файл называется Unit1.pas.
Файл с расширением . e xe – исполняемый файл приложения. После компиляции программы из всех файлов проекта создается единый выполняемый файл, имя этого файла совпадает с именем проекта.
Кнопка "Сохранить" сохраняет изменения текущей формы, кнопка "Сохранить всё" - изменения всех форм и модулей проекта.
Компиляция. Проект мы сохранили, однако работающей программы у нас пока нет. Чтобы ее получить, нужно скомпилировать проект. Причем сделать это можно тремя командами Главного меню:
П оследняя команда не только компилирует проект и создает загрузочный файл программы, но и сразу запускает его на выполнение
Практическое занятие 17
Тема: Создание, сохранение, компиляция и запуск приложений.
Цель: научиться сохранять, компилировать и запускать приложения.
Литература: конспект, интернет ресурсы
З адание 1. Создайте приложение «Парусник», в котором по нажатию на командные кнопки картинка начнет перемещаться, исчезать, появляться и менять свои размеры.
Откройте новый проект.
Разместите на форме 8 кнопок Button и объект Image1 (вкладка Additional).
Переименуйте кнопки согласно картинке выше.
Выделите объект Image1, перейдите в окно Инспектор объектов вкладка Свойства, найдите свойство Picture и загрузите картинку «парусник. jpg », которая находится в Папке 1 курс.
В свойстве Proportional измените значение на true. Так картинка сохранит пропорции и целиком поместится в объект Image1.
Выделите объект Button, который подписан как «Вверх». Перейдите в окно редактора кода (двойной клик) и пропишите следующий код:
Свойство Top отвечает за вертикальное перемещение картинки, 20 – шаг. Минус заставляет картинку перемещаться вверх.
Аналогичным образом повторите для кнопки «Вниз», используя то же свойство, но со знаком плюс.
Выделите объект Button, который подписан как «Влево». Перейдите в окно редактора кода и пропишите следующий код:
Свойство Left отвечает за горизонтальное перемещение картинки. Минус заставляет картинку перемещаться влево.
Аналогичным образом повторите для кнопки «Вправо», используя то же свойство, но со знаком плюс.
Выделите объект Button, который подписан как «Уменьшить». Перейдите в окно редактора кода и пропишите следующий код:
Image1.Height:= Image1.Height - 30;
Свойство Height отвечает за высоту картинки. Свойство Width отвечает за ширину картинки. Минус заставляет картинку уменьшать исходные показатели.
Аналогичным образом повторите для кнопки «Увеличить», используя то же свойство, но со знаком плюс.
Выделите объект Button, который подписан как «Видимый». Перейдите в окно редактора кода и пропишите следующий код:
if Image1.Visible=true then Image1.Visible:=false else Image1.Visible:=true;
Свойство Visible отвечает за видимость объекта на форме. При помощи функции if задаем условие, что при видимости картинки она исчезает и наоборот.
Пропишите код для кнопки закрытия формы.
Выделите форму, в свойстве Caption замените Form1 на «Парусник».
В данной статье рассмотрим решение основных задач, встречаемых в практике при разработке прикладной программы. Для начала нужно ознакомиться с предыдущей статьей, связанной с сохранением данных в текстовый файл. Он удобен для совместимости с другими программами, но занимает слишком много места. Работа с бинарными файлами отличается скоростью обработки, малым размером файла, но требует знания четкой структуры этого файла. Есть отличия и в программных методах работы. Хранение оперативных данных будет осуществляться в динамическом массиве.
Типовые задачи:
1. Ввести некие данные;
2. Визуализировать их в форме графика;
3. Сохранение в бинарный файл;
4. Загрузка созданного файла и использование этих данных;
5. Удаление некорректного значения.
Сделано в последней на данный момент версии Lazarus 2.0.8 (в других вервиях возможны незначительное изменения)
Далее нужно создать серию для визуализации: Правой кнопкой мыши по графику -> Редактор диаграммы -> Добавить -> График
Получаем следующий шаблон в разделе implementation
Для объявления структуры файла лучше всего обозначить её в виде записи. Для этого объявляется новый тип данных в разделе type кода:
Задаем хранилище данных в динамическом массиве нового типа TData, для этого в разделе var дописываем объявление переменной Data:TStringList.
Программа будет преобразовывать дату и время в метку времени, затем в миллисекунды, а затем в минуты. Из каждого нового измерения будет вычитаться первое измерение. Таким образом, отсчет времени будет от нуля минут.
Задаем алгоритм инициализации:
Задаем алгоритм деинициализации:
Задаем алгоритм обработки ввода:
Задаем алгоритм удаления записи:
После закрытия программы в папке появится файл data.dat, содержимое которого нельзя будет разобрать в текстовых редакторах.
При открытии программы, график должен опять появиться со введенными значениями!
При возникновении вопросов, пишите в комментариях здесь или в сообществе ВК!
Читайте также: