Console Mode Pascal/hu
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
magyar (hu) │
日本語 (ja) │
русский (ru) │
slovenčina (sk) │
Szöveges módú Pascal
Szöveges módú Pascal programozás
Sokan közülünk már jóval a grafikus felhasználói felületek (GUI-k) és integrált fejlesztőkörnyezetek (IDE-k) megjelenése előtt Pascal programokat írtak. Sokan mások pedig kezdők a Pascal programozás területén, és szeretnék kipróbálni a nyelv egyszerű eszközeit. Megint másoknak konzolos vagy szöveges módú alkalmazásokat kell fejleszteniük, hogy komplex rendszer vezérlő feladatokat hajtsanak végre.
A Lazarus ideális környezetet kínál a Pascal elsajátításához, és a szöveges módú programok fejlesztéséhez. Az IDE összes lehetősége kihasználható, beleértve a Forráskód szerkesztőt a szintaxis kiemeléssel, a függvénytárakhoz való hozzáférést, bővített keresést, kódkiegészítést, és szintaxis ellenőrzést. Ha nem szeretnél form-okat vizuális komponensekkel, a Lazarus forráskód szerkesztője akkor is remek segédeszköz lesz a fejlesztéshez. Lefordíthatod és futtathatod a programodat a fejlesztés alatt, a szerkesztő elhagyása nélkül.
Konzolos projekt készítéséhez kattints a fő menüsorban a Projekt -> Új projekt ... menüpontra és válaszd a Program, Konzolos alkalmazás, vagy az Egyedi program valamelyikét. Az IDE nem fogja létrehozni a grafikus felülethez szükséges extra fájlokat, és nem fog megnyílni az Objektum Felügyelő ablaka sem, csak a Forráskód szerkesztő egy alap szerkezetű programmal, várva, hogy fejlessz.
Egyedi program
Ez egy nagyon minimális Pascal program. Válaszd ezt, ha mindent magad akarsz megoldani, vagy csak egyszerű teszt programot szeretnél készíteni, amit utána úgyis törölnél.
Program
Nagyjából ugyanaz, mint az Egyedi program, de az IDE itt már egy kicsit többet segít. Például amikor egy új unit-ot hozol létre a projektben, akkor az új unit nevét automatikusan hozzáadja a program uses szekciójához. Ez a viselkedés a projekt opciókban van definiálva.
Egy példa abszolút kezdők részére:
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
begin
WriteLn('Hello World!');
ReadLn;
end.
Konzolos alkalmazás
Ez egy olyan programot fog létrehozni, aminek az osztálya a TCustomApplication-ből van származtatva. A TCustomApplication sok olyan általános dolgot tartalmaz, ami a parancssori alkalmazások készítését egyszerűvé teszi. Ilyenek például a parancssori paraméterek ellenőrzése, súgó írása, környezeti változók figyelése, és a kivétel kezelés. Minden LCL program ezt használja automatikusan.
Program futtatása
Fordítás
Amikor kész a programod (vagy program részleted) lefordíthatod, és futtathatod a Futtatás -> Építés (vagy Gyors fordítás) menüpontra kattintva a főmenüből, vagy a zöld "Play" gombra kattintva a gombsorban a főmenü alatt. Minden fordítói üzenet (figyelmeztetések, folyamat információk, hibaüzenetek, stb.) az Üzenetek ablakban fog megjelenni, és ha remélhetőleg a legvégén ez az üzenet is:
A(z) "Project1" projekt sikeresen lefordítva. :)
De hol van a program?!
Ha még nem mentetted el a programot, akkor az IDE az ideiglenes könyvtárba fogja rakni (pl. /tmpunder Linux alatt, C:\temp Windows alatt, lásd a Környezet -> Beállítások ... ablak Környezet / Fájlok lapon a Könyvtár a teszt projektek építéséhez beviteli mezőt).
Ha már elmentetted a projektedet, akkor a program ugyanabban a könyvtárban jön létre, ahol a project1.lpi fájl található (megjegyzés: ez az alapeset, de ez is beállítható a Projekt -> Projekt opciók ... ablak Alkalmazás lapon található Cél fájlnév: beviteli mezőben).
Futtatás konzolban
Futtathatod a programot úgy, hogy megnyitsz egy konzol (terminál) ablakot, utána a cd paranccsal belépsz a megfelelő könyvtárba, és beírod a program nevét:
Linux alatt:
./Project1
Windows alatt:
Project1.exe
Viszont elég kényelmetlen mindig kilépni a Lazarus Forráskód szerkesztőből egy terminál elindítása miatt. Szerencsére van egy megoldás, amivel ez is kiküszöbölhető, és a terminál ablak automatikusan megnyittatható az IDE-vel, a programod futtatásához.
Futattás az IDE-ben
A főmenüben a Futtatás -> Futtatási paraméterek ... menüpontra kattintva, a Futtató alkalmazás használata jelölőnégyzetet be kell pipálni. Az első alkalommal, amikor ezt csinálod, és megpróbálod futtatni az alkalmazást, valószínűleg egy ilyen üzenetet fogsz kapni:
xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied
Ha ez történne, meg kell változtatnod a jogosultságokat a megfelelő fájlhoz (pl. a chmod +x paranccsal, vagy a Windows alatt a megfelelő segédeszköz használatával), persze root-ként. Ezután, minden alkalommal, amikor futtatod a programodat, egy konzol ablakban fog lefutni a programod automatikusan.
Amint a programod lefutott, egy "Press enter" üzenet fog megjelenni a konzol ablakban. Ez azért jó, mert így még láthatod a programod által létrehozott kimenetet; ahogy ↵ Enter-t nyomsz, a konzol ablak bezárul.
Példák
Használhatod a Lazarus forráskód szerkesztőt, hogy kipróbáld a Pascal könyvekben található példákat, vagy sajátot is írhatsz. A leghasznosabb függvények azok, amelyekkel rendszerparancsokat, vagy más programokat futtathatsz.
Parancssori parancsok futtatása
Itt egy példa egy Egyedi programra, vagy Programra:
program TryShell;
uses
Classes, Unix;
var
S: LongInt;
begin
S := fpsystem('/bin/ls -la *.p*'); // kilistázza a .pp, .pas, .php, .png stb. fájlokat az aktuális
// könyvtárban
WriteLn('A program futasa ezzel a statusszal ert veget: ', S)
end.
Példa: az FPC és a Lazarus frissítése
Sokkal összetettebb parancsok is végrehajthatók. Például, ha ellenőrizted az FPC és Lazarus SVN forrásokat (lásd buildfaq), naprakészen tarthatod az FPC és Lazarus forrás fájlokat az SVN forrásból való letöltéssel, a következő parancsokkal:
program LazUpdate;
uses
Classes, Unix;
var
S: LongInt;
begin
S := fpsystem('cd /usr/local/src/fpc/devel/fpc ; make clean');
S := fpsystem('cd /usr/local/src/fpc/devel/lazarus ; make clean');
S := fpsystem('cd /usr/local/src/fpc/devel ; svn update fpc >& ~/cvscheckout.log');
S := fpsystem('cd /usr/local/src/fpc/devel ; svn update lazarus >& ~/cvslaz.log');
end.
Vedd figyelembe, hogy az
fpsystem('cd /könyvtárnév');
parancs kiadása után az
fpsystem('könyvtárban végrehajtandó parancs');
nem fog működni, mert minden fpsystem függvényhívás után a program futása abban a könyvtárban folytatódik, ahonnan el lett indítva. Tehát egy sorba több parancsot kell beírnunk egyszerre.
Természetesen nem feltétlenül szükséges minden parancsot a saját programodba beírni; készíthetsz egy szkriptet is erre a célra (a buildfaq-ról):
#!/bin/sh cd /usr/local/src/fpc/devel cd fpc make clean cd .. cd lazarus make clean cd .. svn up fpc >& ~/cvscheckout.log svn up lazarus >& ~/cvslaz.log
Nevezd el updatelaz.sh-nak, és utána ezt hívd meg a programodból:
program LazUpdate1;
uses
Classes, Unix;
var
S: LongInt;
begin
S := fpsystem('updatelaz.sh')
end.