[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: 647
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.
eyes wide open but still blind to see what really matters...
#slowanawiatr ♫ ♥ ☕ ☘ ♌ ♫
pzdr,
Natasza

gaweł
User
User
Posty: 384
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: 534
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/

gaweł
User
User
Posty: 384
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

gaweł
User
User
Posty: 384
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: 136
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: 647
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
eyes wide open but still blind to see what really matters...
#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ść