[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: 857
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

♬ ☘ Moja muzyka do kodowania ♬ ♬ ♬ ☘
♫ ♩ ♪ Abyssphere ⚡ ☘ ⚡ Пыль ( На пути к забвению ) ♪ ♩ ♫
https://youtu.be/nTDtVrNx-j4



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

Obrazek

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

Obrazek

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:
Obrazek

wybieramy folder docelowy
Obrazek

i najlepiej pełną instalację ( ponad 900MB po wypakowaniu)
Obrazek

określamy nazwę dla skrótu i decydujemy czy tworzyć ikonkę na pulpicie:
Obrazek
Obrazek

po zebraniu tych informacji instalator jest gotowy do pracy:
Obrazek

podczas trwania instalacji jest tak:
Obrazek

i końcowe gratulacje
Obrazek

nie jest wymagany restart maszyny, ani nic takiego, można śmiało kliknąć ikonę na pulpicie:
Obrazek

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ł
Obrazek

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

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

Obrazek

po lewej Środowisko -> Ogólne, po prawej ustawiamy angielski i restartujemy IDE

Obrazek

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;


Obrazek

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

Obrazek

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

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

Obrazek

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

Obrazek

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)

Obrazek

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

Obrazek

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

Obrazek

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

Obrazek

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

Obrazek

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

Obrazek

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

Obrazek

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

Obrazek

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

Obrazek

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

Obrazek

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ć

Obrazek

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:
Obrazek

i jak zwykle (zakładam, że nabieramy wprawy) przebudowane środowisko udostępni nam nowe klocki na zakładce ueControls
Obrazek

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

Obrazek

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...

:arrow: paczka_do_components.zip - spakowane żywcem z mojej instalacji Laz komponenty, o których wspominałam w tekście
:arrow: LazTest.zip - testowa aplikacja ze stadem kontrolek na formie, można sobie poprzerabiać ewentualnie
Ostatnio zmieniony wtorek 13 mar 2018, 13:10 przez tasza, łącznie zmieniany 1 raz.
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: 604
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: 592
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: 604
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: 604
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: 157
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: 857
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ść