[Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Tutaj umieszczamy tematy związane z językami programowania niepasującymi do innych działów.
Regulamin forum
Temat prosimy poprzedzić nazwą języka umieszczonego w nawiasach kwadratowych np. [Pascal].
Awatar użytkownika
tasza
Expert
Expert
Posty: 746
Rejestracja: czwartek 12 sty 2017, 10:24
Lokalizacja: Ostrowiec Św. / Warszawa
Kontaktowanie:

[Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Postautor: tasza » poniedziałek 19 cze 2017, 14:31

#slowanawiatr

Skoro język Pascal zaczął pojawiać się na tym forum, to może garść informacji o bardzo ciekawym projekcie pt. Lazarus, to w skrócie wielkim Delphi-o podobne środowisko RAD (Rapid Application Development), które czyni kodowanie aplikacji z graficznym interfejsem użytkownika bardzo przyjemnym, a to ze względu na ogromną ilość różnej maści wizualnych komponentów (kontrolek). Obsługa sieci oraz wsparcie dla baz danych także poukładano w zestawy komponentów, korzystając z tych dobrodziejstw można robić całkiem ciekawe rzeczy przy minimalnej ilości pisanego własnoręcznie kodu. Lazarus bazuje na Free Pascal w wersji 3, to jest obiektowy Pascal, naprawdę dojrzałe narzędzie.

instalacja Lazarus

Strona domowa projektu :arrow: https://www.lazarus-ide.org/ guzik Download przekieruje nas:
:arrow: https://sourceforge.net/projects/lazaru ... p_redirect

skąd możemy pobrać najnowszą wersje środowiska: lazarus-1.6.4-fpc-3.0.2-win32.exe

01-lazarus-intro.png


uruchamiamy instalator lazarus-1.6.4-fpc-3.0.2-win32.exe i pierwsze co to wybieramy język:
02-lazarus-intro.png



i już wyjaśniam, dlaczego angielski - jeżeli coś się nie uda, angielskojęzyczne komunikaty o błędach po prostu wklejamy w google i mamy sporą szanse wyszukać na forach etc, coś, co pomoże nam rozwiązań problem

start instalatora:
03-lazarus-intro.png


wybieramy folder docelowy
04-lazarus-intro.png


i najlepiej pełną instalację ( ponad 900MB po wypakowaniu)
05-lazarus-intro.png


określamy nazwę dla skrótu i decydujemy czy tworzyć ikonkę na pulpicie:
06-lazarus-intro.png

07-lazarus-intro.png


po zebraniu tych informacji instalator jest gotowy do pracy:
08-lazarus-intro.png


podczas trwania instalacji jest tak:
09-lazarus-intro.png


i końcowe gratulacje
10-lazarus-intro.png


nie jest wymagany restart maszyny, ani nic takiego, można śmiało kliknąć ikonę na pulpicie:
11-lazarus-intro.png


pierwsze uruchomienie wyświetli okno dialogowe z konfiguracją IDE (ścieżki do kompilatora etc), warto sobie to poprzeglądać, czy nie ma jakichś niepokojących dziwadeł
12-lazarus-intro.png


po zamknięciu tego dialogu Lazarus wystartuje w domyślny dla siebie sposób - proponując kadłubek nowej aplikacji okienkowej:
13-lazarus-intro.png


teraz przełączamy IDE na angielski z powodów jak powyżej (no chyba, że ktoś strasznie nie lubi, to można pominąć)
główne menu -> Narzędzia -> Opcje

13-lazarus-intro-a.png


po lewej Środowisko -> Ogólne, po prawej ustawiamy angielski i restartujemy IDE
13-lazarus-intro-b.png


proponuje wykonać test prościutkiej aplikacji, to ostatecznie potwierdzi, że Lazarus jest w pełni zainstalowany i gotowy do pracy:
na formę widoczną na ekranie kładziemy przycisk, zmieniamy mu właściwość Caption na 'Exit', po dwukrotnym kliknięciu edytor wygeneruje nam pusty handler zdarzenia Click, wypełniamy go prościutkim kodem jak niżej:

Kod: Zaznacz cały

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage( 'to jest test' );
  Application.Terminate;
end;


16-lazarus-intro.png


budowanie testowego projektu (główne menu -> Run -> Build) powinno zakończyć się sukcesem

15-lazarus-intro.png



projekt uruchamiamy guzikiem F9 albo główne menu -> Run -> Run

po wciśnięciu przycisku Exit, aplikacja wyświetli komunikat i zakończy pracę

17-lazarus-intro.png


zamykanie aplikacji jest kontrolowane przez IDE (z racji debugera) więc będziemy dostawać taki komunikat

19-lazarus-intro.png


proponuje nie zmieniać domyślnych ustawień i jednak pozostawić to okienko wyskakujące,
bardzo wiele problemów z alokacją pamięci objawia się właśnie przy zamykaniu aplikacji (wołane są destruktory okien, etc)
wtedy bardzo łatwo o wyjątek typu Access Violation i będziemy mogli to wykryć

jak już mamy ten trywialny projekcik skompilowany i nawet zadziałał, warto pooglądać sobie co jest na dysku w folderze roboczym, proszę zwrócić uwagę na rozmiar pliku wykonywalnego (taki właśnie, bo włączone są do kodu wykonywalnego informacje dla debuggera)

20-lazarus-intro.png


instalacja dodatkowych komponentów

dla wprawy i lepszego zapoznania z IDE zainstalujemy sobie kilka klocków, które umożliwią stworzenie aplikacji z 'industrialnym' interfejsem czyli LED-y, wyświetlacze, gałki i inne pokrętła; dodatkowo doinstalujemy komponent do obsługi portu szeregowego, nasze następne aplikację bedą intensywnie z niego korzystać

kontrolek, że tak ujmę 'automatyczno-przemysłowych' jest w sieci wiele, niestety im ładniejsze i fikuśniejsze tym droższe w zakupie, dlatego też idziemy po taniości i zainstalujemy garść komponentów darmowych, ale za to dostępnych wraz z kodem źródłowym, w którym też potem pogmeramy.

to co chcę pokazać zapakowałam w paczkę na wynos - paczka_do_components.zip - ale zawsze można sobie pobrać najnowsze z internetu
zawartość proszę wypakować do foldera /Components środowiska, tak aby równolegle z istniejącymi dołożyły się

:arrow: /Sdpo - http://wiki.freepascal.org/5dpo ta obsługa portu szeregowego
:arrow: /RackCtls - http://wiki.freepascal.org/RackCtls wyświetlacz, ledy na buttonach, led bar
:arrow: /bgrabitmap - http://wiki.freepascal.org/BGRABitmap wsparcie dla transparentnych obrazków i inne graficzne przydasie
:arrow: /ueControls - http://wiki.freepascal.org/uE_Controls gałki, pokrętła, przełączniki obrotowe, ładne ledy

zaczynamy od portu szeregowego - 5dpo

idziemy do główne Menu -> Package -> Open package file (.lpk) i doklikujemy się do pliku z pakietem sdposeriallaz.lpk, który u mnie akurat jest tu:
D:\lazarus\components\Sdpo\SdpoSerial

w okienku instalatora pakietów zobaczymy nasz szeregowy klocek, jak i wszelkie jego zależności, włącznie z informacją o jakichś brakach, tu jest akurat czysto

21-lazarus-add.png


wciskamy guzik Compile i chwilę zastanawiamy się nad informacjami w okienku Messages

22-lazarus-add.png


są tylko ostrzeżenia kompilatora, miejmy nadzieje, że nie ziszczą się w formie problemów przy korzystaniu z komponentu

potem instalujemy paczkę wywołując Use -> Install

23-lazarus-add.png


instalacja komponentu na paletce wymaga statycznego dolinkowania wykonywalnego kodu nowego klocka do Lazarusa, no to niestety jest przypadłość, ale idzie wytrzymać

24-lazarus-add.png


po wydaniu zgodę na przebudowanie IDE chwilę pochrupie nam dyskiem, ponieważ następuje rekompilacja wszystkich paletek

25-lazarus-add.png


jeżeli sztuczka się uda (a przy odrobinie uwagi udaje się prawie zawsze) zrestartowane automatycznie środowisko udostępni nam komponent TSdpoSerial, znajdziemy do na zakładce 5dpo

26-lazarus-add.png


no to teraz zabieramy się za ledziki i inne wyświetlacze - zestaw RackCtls, analogicznie jak wyżej - otwieramy managera pakietów i doklikujemy się na dysku do pliku RackCtlsPkg.lpk

27-lazarus-add.png


po skompilowaniu, instalacji i przebudowie IDE na zakładce Simon będzie garstka całkiem sympatycznych świecidełek

28-lazarus-add.png


a teraz pokaże co się dzieje gdy nasz komponent będzie wymagał dodatków, a owych nie będzie - naruszenie zależności

doklikajmy się do trzeciej paczuszki uecontrols.lpk i wskażmy ją managerowi komponentów

29-lazarus-add.png


widać bombę z wykrzyknikiem przy BGRABitmapPack - tego środowisku jeszcze nie mamy (a to, że leży na dysku w /components to póki co nic nie znaczy), próba kompilacji spowoduje, że Lazarus rozpłacze się okienkiem pokazującym graf pakietów i ... musimy to jakoś naprawić

30-lazarus-add.png


tu akurat nie było zbyt trudno (ale też chwilkę musiałam pogoglować...) - z foldera components\bgrabitmap trzeba do pakieciarki załadować plik bgrabitmappack.lpk i wykonać kompilację, tylko tyle...

ponowne załadowanie paczki z ueControls pokaże, że wszystko jest w porządku, zależności są spełnione i można dogrywać ten pakiet:
31-lazarus-add.png


i jak zwykle (zakładam, że nabieramy wprawy) przebudowane środowisko udostępni nam nowe klocki na zakładce ueControls
32-lazarus-add.png


można teraz, zupełnie niezobowiązująco powrzucać na formę aplikacji te kontrolki, ktróe nam się podobają, w szczególności kostkę do portu szeregowego; proezę zauważyć, ze widać ją w postaci małej ikonki na formie w trybie `design`, ale po uruchomieniu aplikacji - nic tam nie ma...
33-lazarus-add.png

po prostu ten komponent nie jest kontrolką wizualną, nie ma interface użytkownika, działa sobie w tle pracowicie robiąc to czego oczekujemy

i to tak w skrócie wygląda instalacja Lazarus IDE oraz garści przydatnych komponentów, od teraz wspierając się googlem możemy tworzyć desktopowe aplikacje wyglądające czasem prawie jak w LabVIEW...

paczka_do_components.zip - spakowane żywcem z mojej instalacji Laz komponenty, o których wspominałam w tekście
LazTest.zip - testowa aplikacja ze stadem kontrolek na formie, można sobie poprzerabiać ewentualnie
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Jeżeli dadzą ci papier w linie, pisz w poprzek /Juan Ramón Jiménez/
#slowanawiatr ♫ ♥ ☕ ☘ ♌ ♫
pzdr,
Natasza

Awatar użytkownika
gaweł
Expert
Expert
Posty: 505
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: [Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Postautor: gaweł » poniedziałek 19 cze 2017, 17:32

Ach, co za manipulacja... :)

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
dambo
Expert
Expert
Posty: 565
Rejestracja: czwartek 17 mar 2016, 17:12

Re: [Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Postautor: dambo » poniedziałek 19 cze 2017, 18:36

Ja niestety miałem takiego nauczyciela w liceum, że jak widzę Pascala to mi się niedobrze robi i się nie mogę przełamać, a tu widzę mega fajne narzędzia są do niego :) komponent z 7seg lub bargraphem led- świetna sprawa :)
Zapraszam na mojego pseudobloga z projektami itp: http://projektydmb.blogspot.com/

Awatar użytkownika
gaweł
Expert
Expert
Posty: 505
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: [Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Postautor: gaweł » poniedziałek 19 cze 2017, 19:18

Szacun za doskonały tutorial.
kwiaty.jpg


Zrobiłem jak jest napisane, i działa:
laz.PNG
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 505
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: [Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Postautor: gaweł » poniedziałek 19 cze 2017, 19:23

dambo pisze:Ja niestety miałem takiego nauczyciela w liceum, że jak widzę Pascala to mi się niedobrze robi i się nie mogę przełamać

Pascal to jak poezja...
dambo pisze:a tu widzę mega fajne narzędzia są do niego :) komponent z 7seg lub bargraphem led- świetna sprawa :)

A to jest kwestią wyłącznie komponentów.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
phill2k
User
User
Posty: 147
Rejestracja: niedziela 18 paź 2015, 00:12

Re: [Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Postautor: phill2k » poniedziałek 19 cze 2017, 23:16

Rewelacja Tasza, super poradnik..., z tekstu wynika że będa kolejne części, nie mogę sie już doczekać. :D

Awatar użytkownika
tasza
Expert
Expert
Posty: 746
Rejestracja: czwartek 12 sty 2017, 10:24
Lokalizacja: Ostrowiec Św. / Warszawa
Kontaktowanie:

Re: [Pascal] Lazarus IDE, Free Pascal i garść industrialnych kontrolek

Postautor: tasza » wtorek 20 cze 2017, 13:57

gaweł pisze:Ach, co za manipulacja... :)

hmm, może mało lotna dziś jestem, ale nie rozumiem ... a sygnały, że Laz i te kontrolki się pojawią były na f. sporo czasu temu, po prostu nie mogłam się zebrać do tego...

dambo pisze:Ja niestety miałem takiego nauczyciela w liceum, że jak widzę Pascala to mi się niedobrze robi i się nie mogę przełamać,

no to słabo rzeczywiście, bo Pascal jest w sumie fajnym językiem i da się w tym sensownie klecić, tak myślę.
Ja uczyłam się sama, głównie z książek pana A.Marciniaka, TP5.5, potem dalsze wersje, z Turbo Vision (to był czad!) no a potem ktoś pokazał mi Delphi, jak masz choćby wyczytane podstawy i motywację - nauka i zdobywanie eksperiencji idzie dość sprawnie
Jeżeli dadzą ci papier w linie, pisz w poprzek /Juan Ramón Jiménez/
#slowanawiatr ♫ ♥ ☕ ☘ ♌ ♫
pzdr,
Natasza


Wróć do „Inne języki programowania”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość