Sign in Join
Wiki copytemporary

Console Mode Pascal/hu: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Console Mode Pascal/hu

OldNewLine
1+<font size="7">Szöveges módú Pascal</font>
2+
3+<div style="text-align: justify;">
4+
5+## Szöveges módú Pascal programozás
6+
7+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.
8+
9+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.
10+
11+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.
12+
13+#### Egyedi program
14+
15+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.
16+
17+#### Program
18+
19+Nagyjából ugyanaz, mint az [[Console Mode Pascal/hu|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.
20+
21+Egy példa abszolút kezdők részére:
22+
23+``` pascal
24+program Project1;
25+{$mode objfpc}{$H+}
26+uses
27+ {$IFDEF UNIX}{$IFDEF UseCThreads}
28+ cthreads,
29+ {$ENDIF}{$ENDIF}
30+ Classes
31+ { you can add units after this };
32+begin
33+ WriteLn('Hello World!');
34+ ReadLn;
35+end.
36+```
37+
38+#### Konzolos alkalmazás
39+
40+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.
41+
42+## Program futtatása
43+
44+#### Fordítás
45+
46+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:
47+
48+` A(z) "Project1" projekt sikeresen lefordítva. :)`
49+
50+De hol van a program?!
51+
52+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).
53+
54+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).
55+
56+#### Futtatás konzolban
57+
58+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:
59+
60+Linux alatt:
61+
62+` ./Project1`
63+
64+Windows alatt:
65+
66+` Project1.exe`
67+
68+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.
69+
70+#### Futattás az IDE-ben
71+
72+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:
73+
74+` xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied  `
75+
76+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.
77+
78+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 <span class="kbd">Enter</span>-t nyomsz, a konzol ablak bezárul.
79+
80+## Példák
81+
82+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.
83+
84+#### Parancssori parancsok futtatása
85+
86+Itt egy példa egy *Egyedi program*ra, vagy *Program*ra:
87+
88+``` pascal
89+program TryShell;
90+uses
91+ Classes, Unix;
92+var
93+ S: LongInt;
94+begin
95+ S := fpsystem('/bin/ls -la *.p*'); // kilistázza a .pp, .pas, .php, .png stb. fájlokat az aktuális
96+ // könyvtárban
97+ WriteLn('A program futasa ezzel a statusszal ert veget: ', S)
98+end.
99+```
100+
101+#### Példa: az FPC és a Lazarus frissítése
102+
103+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:
104+
105+``` pascal
106+program LazUpdate;
107+uses
108+ Classes, Unix;
109+var
110+ S: LongInt;
111+begin
112+ S := fpsystem('cd /usr/local/src/fpc/devel/fpc ; make clean');
113+ S := fpsystem('cd /usr/local/src/fpc/devel/lazarus ; make clean');
114+ S := fpsystem('cd /usr/local/src/fpc/devel ; svn update fpc >& ~/cvscheckout.log');
115+ S := fpsystem('cd /usr/local/src/fpc/devel ; svn update lazarus >& ~/cvslaz.log');
116+end.
117+```
118+
119+Vedd figyelembe, hogy az
120+
121+``` pascal
122+fpsystem('cd /könyvtárnév');
123+```
124+
125+parancs kiadása után az
126+
127+``` pascal
128+fpsystem('könyvtárban végrehajtandó parancs');
129+```
130+
131+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.
132+
133+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):
134+
135+` #!/bin/sh`\
136+` cd /usr/local/src/fpc/devel`\
137+` cd fpc`\
138+` make clean`\
139+` cd ..`\
140+` cd lazarus`\
141+` make clean`\
142+` cd ..`\
143+` svn up fpc >& ~/cvscheckout.log`\
144+` svn up lazarus >& ~/cvslaz.log `
145+
146+Nevezd el **updatelaz.sh**-nak, és utána ezt hívd meg a programodból:
147+
148+``` pascal
149+program LazUpdate1;
150+uses
151+ Classes, Unix;
152+var
153+ S: LongInt;
154+begin
155+ S := fpsystem('updatelaz.sh')
156+end.
157+```
158+
159+## Lásd még
160+
161+- [[Command line parameters and environment variables|Parancssori paraméterek és környezeti változók]]
162+- [[Executing External Programs|Külső programok futtatása]]
163+
164+</div>
165+
166+---
167+*From the Free Pascal wiki, page "Console Mode Pascal/hu", as it stood on 2020-02-11 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history