Opracował: mgr inŝ. Zbigniew JANIK Strona 1/7 Zakres tematyki: Wprowadzenie. Co to jest Lazarus? Jak pobrać bezpłatną wersję Lazarus a Organizacja projektu w Lazarus ie Język programowania jest tylko narzędziem. Wiedza, która jest potrzebna, aby napisać program rozwiązujący jakiś problem, jest uniwersalna i niezaleŝna od języka programowania. Wiadomości na temat składni, dostępnych konstrukcji czy teŝ obowiązujących reguł w wybranym języku programowania absolutnie nie wystarczą, są jedynie niezbędnym dodatkiem. NajwaŜniejsze, Ŝebyście potrafili ułoŝyć algorytm. A czy go zapiszecie w C++, Pascalu, Javie, Basicu czy Matlabie - to naprawdę nie jest takie istotne. Język C++ jest aktualnie chyba najpopularniejszym językiem programowania na świecie. Niestety, programowanie przy jego wykorzystaniu, szczególnie w sposób pozwalający na osiągnięcie wysokiej efektywności utworzonego kodu, nie jest łatwe. Środowisko Lazarus 0.9.31 http://www.hu.freepascal.org/lazarus/ Lazarus to znakomite IDE do szybkiego tworzenia aplikacji w języku ObjectPascal (znanym z Delphi). Choć projekt jest wzorowany na Delphi, jego celem jest wieloplatformowość raczej niŝ konkurowanie z oryginałem, który działa i tworzy aplikacje jedynie dla Windows. Jeśli chcemy szybko zacząć tworzyć wielplatformowe aplikacje, warto dać szansę Lazarusowi Lazarus zintegrowane środowisko programistyczne oparte na kompilatorze Free Pascal. Jest to wzorowane na Delphi wizualne środowisko programistyczne oraz biblioteka Lazarus Component Library (LCL), która jest odpowiednikiem VCL. Program napisany w środowisku Lazarus moŝna bez Ŝadnych zmian skompilować dla dowolnego obsługiwanego procesora, systemu operacyjnego i interfejsu okienek. Lazarus jest zgodny z Delphi. Jest brakującą częścią układanki, która pozwala na rozwijanie programów, podobnie jak w Delphi, na wszystkich platformach obsługiwanych przez FPC (Free Pascal). W odróŝnieniu od Javy, która stara się, aby raz napisana aplikacja działała wszędzie (write once run anywhere), Lazarus i Free Pascal starają się, aby raz napisana aplikacja kompilowała
Opracował: mgr inŝ. Zbigniew JANIK Strona 2/7 się wszędzie (write once compile anywhere). PoniewaŜ dostępny jest dokładnie taki sam kompilator, nie trzeba wprowadzać Ŝadnych zmian, aby otrzymać taki sam produkt dla róŝnych platform. Program jest udostępniany na licencji GNU GPL, natomiast biblioteki na zmodyfikowanej licencji LGPL (co oznacza moŝliwość wykorzystania Lazarusa w projektach o zamkniętym kodzie). Bezpłatna wersja Lazarus MoŜesz ją pobrać ze strony: http://www.hu.freepascal.org/lazarus/ Dla Windows istnieją dwie wersje win32 oraz win64. Musisz pobrać wersję, odpowiednią dla twojego systemu operacyjnego. Instalacja jest prosta i nie wymaga absolutnie Ŝadnych komentarzy. NaleŜy po zapisaniu na dysku twardym uruchomić pobrany plik Lazarus-0.9.31-35499-fpc-2.6.1-20120220-win64.exe lub Lazarus-0.9.31-35517-fpc-2.6.1-20120221-win32.exe i zainstalować środowisko w domyślnym katalogu.
Opracował: mgr inŝ. Zbigniew JANIK Strona 3/7 Co to jest RAD Dotychczas pisaliśmy swoje programy w Pascalu i uruchamialiśmy je w oknie interpretera poleceń (konsoli). Ten sposób programowania jest bardzo dobrym wstępem do nauki tworzenia, kodowania i testowania algorytmów, zaś profesjonalnym programistom moŝe słuŝyć do uruchamiania waŝnych i złoŝonych algorytmicznie fragmentów programu. Ale sami przyznacie, Ŝe współczesne programy, nazywane często aplikacjami, nie mogą tak wyglądać. Muszą mieć teraz menu, paski narzędziowe i okienka, a w nich przyciski, suwaki i mnóstwo innych elementów, które doskonale znacie z wielu aplikacji uŝywanych na co dzień. Wszystko to razem nosi nazwę Graficznego Interfejsu UŜytkownika, czyli tzw. GUI (ang. Graphics User Interface). Jak napisać program z takim interfejsem? Do wyboru są dwie moŝliwości: Metoda tradycyjna, czyli wykorzystać rozszerzony, obiektowy Pascal (Object Pascal) i specjalne funkcje niskiego poziomu, słuŝące do programowania w Windows, tzw. funkcje Windows API (ang. Application Programming Interface). UŜywając ich programista musi dokładnie podać w kodzie programu, gdzie okno ma się znajdować, jakiego jest koloru, jaki font będzie uŝywany do jego wyświetlenia itp. W efekcie aby pokazać na ekranie proste okno bez zawartości, trzeba napisać kilkadziesiąt linii kodu. W języku C pisze się bardzo podobnie, przy uŝyciu tych samych funkcji API. Wykorzystać narzędzia nazywane RAD, czyli szybkie tworzenie aplikacji (ang. Rapid Application Developement). Delphi jest właśnie pakietem RAD, wykorzystującym język Object Pascal. Idea oprogramowania typu RAD sprowadza się do stwierdzenia, Ŝe jeśli tylko programistę moŝna wyręczyć w jakiejś czynności podczas tworzenia programu, to naleŝy to zrobić. Aby pokazać na ekranie okno, w Delphi nie musicie napisać ani jednej linijki. Podobnie sprawa wygląda przy odczycie informacji z bazy danych, pisaniu aplikacji internetowych czy innych często powtarzanych czynnościach. Pakiety RAD zawierają zestawy gotowych procedur "ubrane" w intuicyjny interfejs uŝytkownika, pozwalające na tworzenie wyglądu okienek za pomocą myszy (jak zobaczycie to za chwilę), a nie pisania kodu. Korzystanie z narzędzi typu RAD pozwala nam w znaczący sposób skrócić czas tworzenia aplikacji. Oprócz Delphi do narzędzi typu RAD zalicza się C++ Builder, (czyt. bilder) Visual C++, Visual Basic, Power Builder i wiele innych mniej znanych. Oczywiście, jak przy kaŝdym wyborze, nic nie ma za darmo. Programista korzystający z zestawu procedur RAD nie jest w stanie dokładnie kontrolować tego, co się dzieje wewnątrz nich. Aplikacja napisana przy uŝyciu RAD zazwyczaj działa wolniej - bo komponenty czy procedury biblioteki są budowane tak, aby zapewnić elastyczność i łatwość wykorzystywania. Natomiast pisząc coś samemu jesteśmy w stanie napisać procedury optymalne pod względem czasu wykonania dla określonego zadania. Wreszcie - aplikacje są zazwyczaj znacznie większe i wymagają większej ilości zasobów (pamięci, miejsca na dysku itp.). Ostatnią wadą jest skomplikowana obsługa samego środowiska RAD. KsiąŜki opisujące Delphi liczą po kilkaset stron (zajrzyjcie do bibliografii),
Opracował: mgr inŝ. Zbigniew JANIK Strona 4/7 a i tak nie znajdziecie w nich wszystkiego. Nauka efektywnego wykorzystywania bibliotek VCL (Visual Component Library), czyli bibliotek komponentów wizualnych, z których najprostsze poznacie w tej lekcji, zajmuje zwykle ponad pół roku nawet doświadczonemu programiście. Ponadto tutaj nie ma standardów: o ile język Pascal czy C jest mniej więcej taki sam, niezaleŝnie od producenta kompilatora czy teŝ systemu operacyjnego, to programista biegle znający C++ i C++ Builder (czyli środowisko RAD dla C++ firmy Borland, analogiczne do Delphi), przesiadając się na Visual C++ (środowisko RAD Microsoftu, znacznie uboŝsze co do moŝliwości projektowania okienek i innych elementów GUI, ale za to generujące szybciej działające aplikacje) będzie się musiał wszystkiego uczyć od nowa. Na zakończenie uwaga podsumowująca i wyjaśniająca, związana z częstymi w tym względzie nieporozumieniami: Lazarus nie jest językiem programowania. Jest środowiskiem do szybkiego projektowania aplikacji. Językiem programowania w tym środowisku jest Free Pascal, a ściślej jego rozszerzenie zwane Object Pascalem. C++ Builder równieŝ jest środowiskiem do szybkiego projektowania aplikacji. Do programowania w tym środowisku słuŝy - co w tym przypadku jest oczywiste - język C++. śeby więc w Lazarusie projektować okienka, trzeba poznać choć trochę moŝliwości środowiska RAD, ale do pisania właściwych algorytmów trzeba teŝ poznać język Pascal. Organizacja projektu w Lazarus 1. Pliki tworzone przez edytor źródeł Plik główny projektu z rozszerzeniem.lpr - plik tekstowy, który zawiera informacje o formularzach i modułach aplikacji. Znajduje się tam równieŝ kod, który inicjuje aplikację. Plik projektu z rozszerzeniem.lpi plik tekstowy, który zawiera informacje o konfiguracji środowiska Lazarus a w formacie xml. Plik modułu z rozszerzeniem.pas plik tekstowy zawierający kod źródłowy modułu w języku Object Pascal. MoŜe być stowarzyszony z formularzem lub stanowić samodzielny składnik projektu. Plik formularza z rozszerzeniem.lfm plik binarny zawierający definicję formularza. KaŜdy taki plik powiązany jest z modułem (plik.pas) zawierającym program źródłowy związany z obsługą formularza. Plik zasobów z rozszerzeniem.res binarny plik zasobów projektu 2. Pliki tworzone podczas kompilacji Wykonywalny plik wynikowy z rozszerzeniem.exe - jest to plik utworzony przez nasz program. Pliki modułów z rozszerzeniem.ppu zawierają skompilowane wersje modułów zawartych w projekcie.
Opracował: mgr inŝ. Zbigniew JANIK Strona 5/7 Pozostałe pliki potrzebne do uruchomienia aplikacji tworzą się automatycznie podczas ponownej kompilacji. Jeśli chcemy uruchomić nasz program na komputerze nie wyposaŝonym w program Lazarus a, naleŝy przekopiować równieŝ plik wykonywalny z rozszerzeniem.exe Przenoszenie projektu w Lazarus a na inny komputer W momencie zapisu projektu pod domyślnymi nazwami na dysk do katalogu np.: Z:\AAA tworzą się następujące pliki: Aby z powodzeniem uruchomić nasz projekt na innym komputerze z zainstalowanym Lazarus em naleŝy przekopiować tylko 4 pliki podświetlone na niebiesko: Nie naleŝy kopiować pliku project1.lpi poniewaŝ zapisane są w nim informacje o konfiguracji środowiska Lazarus i o komputerze, na którym projekt był przygotowywany. Przekopiowanie tego pliku moŝe spowodować, Ŝe na innym komputerze nie uruchomimy tego projektu. Brakujące pliki zostaną na nowym komputerze automatycznie wygenerowane po ponownym zapisaniu projektu. Po udanej kompilacji projektu na dysku pojawi się katalog lib oraz plik wykonywalny projekt1.exe.
Opracował: mgr inŝ. Zbigniew JANIK Strona 6/7 Powstający plik.exe jest bardzo duŝy, poniewaŝ do pliku wykonywalnego zostały dołączone wszystkie informacje debuger a programu (mechanizm odpluskwiania). Aby zmniejszyć rozmiar tego pliku naleŝy wyłączyć wszystkie niepotrzebne opcje w panelu Odpluskwianie: w oknie Options for Project: projekt1 dla węzła Łączenie, tak jak to pokazano poniŝej: Wtedy kod programu znacząco zmaleje z 13,4 MB do 1,6MB:
Opracował: mgr inŝ. Zbigniew JANIK Strona 7/7