от PhrozenCrew(10-12-2006)

рейтинг (22)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Програмиране на програма с графичен интерфейс (GUI) с Lazarus и freepascal за Linux и Windows

В този урок в лесни стъпки ще се опитам да покажа основата за програмиране с Free pascal, като използвам IDE среда за програмиране Lazarus (перфектно IDE с отворен код за Windows и Linux).
Free Pascal е компилатор, който е много близък по синтаксис до Delphi.

Реших да напиша много семпла програмка с графичен интерфейс (GUI), която да даде основните техники на програмирането с помощта на Lazarus. Програмката ще извършва конвертиране на температура по Целзий в температура по Фаренхайт.
За да няма отегчени нека се залавяме за работа.
1. Стартирайте Lazarus и изберете от падащото меню Project -> New Project...
Ще ви се отвори прозореца "Create a new project" в който трябва да изберете типа на новия проект. Изберете "Application" (ако не е маркирано) и натиснете бутона "Create".



В този момент вече разполагате с подложка (Form1) за графчния интерфейс на програмата която искаме да напишем.



2. В лентата с инструменти, малко под падащите менюта, трябва да е избран таба "Standart". В този таб са вкарани всички по-използвани инструменти необходими за графичен интерфейс. При спиране на мишката върху всеки инструмент ще се изписва името му: TMainMenu, TPopupMenu, TButton, TLabel. За този проект ще са ви необходими само 2 инструмента - TButton и TEdit.



Кликнете върху инструмента TEdit и после кликнете където и да е върху подложката Form1. Веднага ще се появи поле за редактиране. Това поле Lazarus ще го кръсти сам Edit1.



3. Сега кликнете върху инструмента TButton и после някъде до полето за редактиране, което направихме преди малко. Lazarus ще кръсти този бутон Button1.
4. Отново кликнете на лентата с инструменти върху TEdit и после пак върху подложката Form1 някъде до Button1.



Вече трябва да имате всички необходими инструменти за графичния интерфейс на програмата, а те са две полета за редактиране и един бутон. Нека малко да оправим интерфейса. Lazarus предлага много добра снап функция при местене на елементите. разположете всичко така, че да изглежда добре.



5. Сега вече идва по-сложната част. Добре е да разбирате поне малко от езика за програмиране Pascal, но ако не разбирате няма да е фатално. Ще се опитам да обясня колкото мога. Има доста ръководства в гугъл за Pascal, така че можете да си намерите доста подробна информация.
Кликнете два пъти върху бутона Button1, който създадохте. Ще се появи прозореца с сорс кода на програмата и ще видите мигащ курсор готов за задаване на команди между begin и end:
procedure TForm1.Button1Click(Sender: TObject);
begin

end;




Точно на това място трябва да вкараме нашия код. Мдам, но какво точно да напишем. Конвертирането на температура по Целзий до температура по Фаренхайт става по следната формула:
°F = °C * 1.8 + 32
Хм, значи полето за редактиране Edit1 ще е поле за записване на температурата по Целзий, а полето Edit2 ще покаже пресметнатата температура по Фаренхейт. Нека да пробваме тая формула. Ще извлечем написаното в полето Edit1 (задължително трябва да съдържа число), след натискане на бутона Button1 после ще го обработим по формулата и ще накараме програмата да изпише резултата в Edit2. Да видим как ще изглежда самия код:
Edit2.Text := FloatToStr((StrToFloat(Edit1.Text)*1.8)+32);
Така, сега нека обясним какво направихме. С "StrToFloat" превърнахме стринга(текста) от Edit1 в число с плаваща запетая, което да се разпознава от Pascal, след това извършихме необходимите математически операции с това число и най-накрая пак го превърнахме в удобен за показване според Pascal текст с функцията "FloatToStr".
6. Да вземем да пробваме това чудо дали работи. Натиснете F9 и почакайте малко. Ако всичко е наред би трябвало да ви се покаже програмата, като в полето Edit1 трябва да напишете някакво число. Да речем че напишете 2.1356, след това натиснете бутона Button1 и вижте дали в полето Edit2 се е получил резултата 35,84408. Ако това е така значи вече сте готови графичната си програма.



7. Сега нека да направим малко фини настройки. Спрете програмката и се върнете подложката в Lazarus. Изберете елемента Edit1. В дясно се намира Object Inspeector-а в който е и Properties таба. Като се поразгледате в тоя таб ще видите полето Text, а срещу него Edit1. Изтрийте надписа Edit1.



По същия начин постъпете и с Edit2. Сега изберете бутона и намерете полето в Properties - Caption. Срещу Caption би трябвало да е изписано Button1. Изтрийте този надпис и напишете Convert.

Чудесно!. Сега дали не можем още малко да пипнем, ей така за обща култура. Май ще е добре да получаваме отговора закръглен до втория знак след десетичната запетая. За тази цел ще използваме функцията за форматиране FloatToStrf. Тази функция има много възможности, но на нас ни само една ffFixed. С тази функция можете да изберете и прецизност на закръглянето, но това е тема за друг урок. И така нека заменим реда
Edit2.Text := FloatToStr((StrToFloat(Edit1.Text)*1.8)+32);
с този
Edit2.Text := FloatToStrf((StrToFloat(Edit1.Text)*1.8)+32,ffFixed,5,2);
Компилираме отново и да видим какво се получава като зададем отново същата температура по Целзий както по-горе 2.1356.



Дали да не сменим и името на самия прозорец. Кликнете върху самата подложка и изберете от Object Inspector-a таба Favorites. Там срещу полето Caption заменете Form1 с Converter
Да компилираме пак нашата програмка и да видим какво е станало.



От там нататък следват импровизациите. Пожелавам ви успех с програмирането с Pascal!
Изходният код на програмата можете да намерите тук.


<< Правене на архиви по "лесния начин" | Размисли по HFSC >>