download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

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

Автор
Съобщение
phrozencrew
Сря, 04.04.07, 13:53
Програмиране на програма с графичен интерфейс (GUI) с Lazarus и FreePascal за Linux и Windows

Пиша този тутор тук защото нямам възможност да го поместя в секциите статии, a забелязвам, че има фенове на графичните приложения за 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!
Изходният код на програмата можете да намерите тук.

дядо_поп
Чет, 05.04.07, 10:31
Ти изби рибата, чадо! Даже на Дядо Поп го засърбяха ръцете да го пробва това чудо. А за улеснение нам помиловал е Бог да има на тоя богоугоден сайт каквото трябва - Lazarus IDE и Free Pascal .
Господ здраве да ти дава!
anonymous
Сря, 30.05.07, 21:32
хубав урок
бе върха са подобни среди спор нема:)
anonymous
Сря, 18.07.07, 14:19
Тази програма е СУПЕЕЕЕЕЕРРРР, щом и най-начинаещия начинаещ (тоест аз) успя значи програмата жържи чудесно
anonymous
Чет, 19.07.07, 11:19
Хм... Все още повече ме блазни Visual C++
дядо_поп
Чет, 19.07.07, 11:34
Истина, истина е речено че в Java е истината, чада, поежели е мултиплатформена и универсална. Паметлив Дядо Поп помни по едно врема angelicstar беше програмирала с Java котката на insecteater да му разхожда тостера.
anonymous
Пет, 11.07.08, 14:48
Аз имам един въпрос.
има ли нещо което да незнаеш?

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2021   Experta Ltd.