Sign in Join
Wiki copytemporary

Lazarus Faq/hu: what changed

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

Title: Lazarus Faq/hu

OldNewLine
1+<font size="7">Lazarus GY.I.K.</font>
2+
3+folyamatban...
4+
5+## Általános
6+
7+### Mi a Lazarus?
8+
9+A Lazarus egy kereszt-platformos integrált fejlesztői környezet (IDE), melynek segítségével grafikus felületű (GUI) és parancssoros Object [[Pascal]] programok készíthetők, és amely a futtatható állományok elkészítéséhez a Free Pascal fordítót használja. Jelmondata *írd meg egyszer, fordítsd le bárhol*: a program forráskódja lefordítható egy másik operációs rendszeren futó Lazarus-szal (vagy keresztfordítóval) és az így létrehozott állomány futtatható lesz azon a rendszeren.
10+
11+Részletekért lásd: [[Overview of Free Pascal and Lazarus/hu|A Lazarus és a Free Pascal áttekintése]]
12+
13+### Miért olyan nagyok a létrehozott binárisok?
14+
15+A binárisok azért nagyok, mert hibakeresési információkat is tartalmaznak, amelyekre a gdb (GNU Debugger) használatakor van szükség.
16+
17+A fordítónak van egy kapcsolója amellyel el lehet távolítani a hibakeresési információkat a futtatható állományból (-Xs), de egy hiba miatt (a 2.0.2 és korábbi változatokban) ez nem működik megfelelően. A hiba már javítva van a fordító 2.0.4 és későbbi változataiban.
18+
19+Használhatod a 'strip' nevű programot a hibakeresési szimbólumok eltávolításához a futtatható állományból. Ez a lazarus könyvtárában található (például: lazarus\fpc\bin\i386-win32\\).
20+
21+Csak írd a parancssorba: "strip --strip-all \<a_futtatható_fájl_neve_útvonallal\>".
22+
23+Ha még kisebbre akarod a programod méretét, kipróbálhatod az [UPX](http://upx.sourceforge.net/) programot. Az UPX egy nagyon jó tömörítő kifejezetten futtatható állományok tömörítéséhez. Nem foglal feleslegesen memóriát a helyben történő kitömörítés alatt. Nagyon gyorsan tömöríti ki az állományokat (~10 MB/másodperc egy Pentium 133 gépen).
24+
25+Az UPX hazsnálatához írd a parancssorba: "upx \<a_futtatható_fájl_neve_útvonallal\>".
26+
27+Miután mindkét parancs (strip és upx) is lefutott, egy Lazarus-szal készített egyszerű GUI alkalmazás mérete kb. ennyi lesz:
28+
29+- ~ 700kb Linux-on
30+- ~ 420kb Windows-on
31+
32+Részletesebb választ az UPX használatának esetleges hátrányairól is, itt olvashatsz: [[Size Matters]] *(angolul)*.
33+
34+Fontos megjegyezni, hogy a lazarus 'hello world' példaprogram már eleve tartalmaz nagyon sok fontos összetevőt. Tartalmazza:
35+
36+- XML kezelő függvénytár
37+- Képkezelő függvénytár png, xpm, bmp és ico fájlokhoz
38+- Majdnem minden widget-et a LCL-ből (Lazarus Component Library)
39+- Az teljes Free Pascal Runtime Library-t
40+
41+Ezért nagyon nagy, de már majdnem mindent tartalmaz amire egy a valódi világnak készülő és komoly alkalmazásnak szüksége lehet.
42+
43+A Lazarus által készített futtatható állományok nagy mérettel kezdődnek, de csak lassan nőnek, köszönhetően a Free Pascal fordítónak és a módnak ahogy a lazarus ablakok működik. Egy c++ projekt (csak példa, de más nyelvekre / eszközökre is igaz) kis mérettel kezdődneka 'hello world' esetében, de méretük gyorsan a sokszorosára nő amikor egy szükséged van összetevőkre egy komoly alkalmazás írásához.
44+
45+<figure>
46+<img src="Lazarus_vs_cpp_hu.png" title="Lazarus_vs_cpp_hu.png" />
47+<figcaption>Lazarus_vs_cpp_hu.png</figcaption>
48+</figure>
49+
50+**Gyors útmutató a Lazarus/FPC alkalmazások méretének csökkentéséhez** *(tesztelve a Lazarus 0.9.26 változatával)*
51+
52+- 1\. "Project\|Project Options\|Compiler Options\|Code\|Smart Linkable (-CX)" -\> Bejelölve
53+- 2\. "Project\|Project Options\|Compiler Options\|Linking\|Debugging\|" minden törölve kivéve a "Strip Symbols From Executable (-Xs)" -\> Bejelölve
54+- 3\. "Project\|Project Options\|Compiler Options\|Linking\|Link Style\|Link Smart (-XX)" -\> Bejelölve
55+
56+A legfontosabb elem a 2. Egy egyszerű alkalmazás esetén a futtatható állomány mérete 1-3 MB körül lesz 15-20 MB helyett. Ezen a ponton megpróbálhatod ezt: "Project\|Project Options\|Compiler Options\|Code\|Optimizations\|smaller rather than faster" -\> Bejelölve (Figyelem: ez csökkentheti a tejesítményt)
57+
58+- 4\. (Esetleg) Futtasd az "UPX \<te_futtatható_programod\>" parancsot a bináris állomány tömörítéséhez a -2 vagy -3 paraméterrel (Figyelem: mint fentebb olvashattad, az UPX használatának lehetnek hátrányai).
59+
60+**Méretek változása egy üres alkalmazás esetén, beállítások és operációs rendszerek függvényében**
61+
62+A tesztekhez változatok: Lazarus 0.9.29 és FPC 2.4 (Windows-on FPC 2.2.4). Az *Optimized compiler* a fentebbi tanácsok alkalmazását jelenti *UPX használata nélkül*. A *Default Lazarus* pedig azt ahogy telepítve lett a csomagból/telepítővel. Az *LCL without debug informations* jelentése, hogy a Lazarus IDE és LCL hibakeresési információk nélküli (-g-) újraépítése után.
63+
64+<TABLE WIDTH=642 BORDER=0 CELLPADDING=1 CELLSPACING=0>
65+
66+<TR VALIGN=TOP>
67+
68+<TD WIDTH=263>
69+
70+</TD>
71+
72+<TD WIDTH=14>
73+
74+   
75+
76+</TD>
77+
78+<TD WIDTH=111>
79+
80+Default Lazarus
81+
82+</TD>
83+
84+<TD WIDTH=14>
85+
86+   
87+
88+</TD>
89+
90+<TD WIDTH=220>
91+
92+LCL without debug informations
93+
94+</TD>
95+
96+</TR>
97+
98+<TR VALIGN=TOP>
99+
100+<TD WIDTH=263>
101+
102+<U>Ubuntu 64 bits / Lazarus 64 bits</U>
103+
104+</TD>
105+
106+<TD COLSPAN=4 WIDTH=372>
107+
108+</TD>
109+
110+</TR>
111+
112+<TR VALIGN=TOP>
113+
114+<TD WIDTH=263>
115+
116+Default application
117+
118+</TD>
119+
120+<TD WIDTH=14>
121+
122+   
123+
124+</TD>
125+
126+<TD WIDTH=111>
127+
128+13,4  Mb
129+
130+</TD>
131+
132+<TD WIDTH=14>
133+
134+   
135+
136+</TD>
137+
138+<TD WIDTH=220>
139+
140+7,5 Mb / 8
141+
142+</TD>
143+
144+</TR>
145+
146+<TR VALIGN=TOP>
147+
148+<TD WIDTH=263>
149+
150+Optimized compiler
151+
152+</TD>
153+
154+<TD WIDTH=14>
155+
156+   
157+
158+</TD>
159+
160+<TD WIDTH=111>
161+
162+4,4 Mb
163+
164+</TD>
165+
166+<TD WIDTH=14>
167+
168+   
169+
170+</TD>
171+
172+<TD WIDTH=220>
173+
174+2,70 Mb (0.29svn FPC2.4 2,5)
175+
176+</TD>
177+
178+</TR>
179+
180+<TR VALIGN=TOP>
181+
182+<TD WIDTH=263>
183+
184+   
185+
186+</TD>
187+
188+<TD COLSPAN=4 WIDTH=372>
189+
190+</TD>
191+
192+</TR>
193+
194+<TR VALIGN=TOP>
195+
196+<TD WIDTH=263>
197+
198+<U>Ubuntu 32 bits / Lazarus 32 bits</U>
199+
200+</TD>
201+
202+<TD COLSPAN=4 WIDTH=372>
203+
204+</TD>
205+
206+</TR>
207+
208+<TR VALIGN=TOP>
209+
210+<TD WIDTH=263>
211+
212+Default application
213+
214+</TD>
215+
216+<TD WIDTH=14>
217+
218+   
219+
220+</TD>
221+
222+<TD WIDTH=111>
223+
224+19,6  Mb
225+
226+</TD>
227+
228+<TD WIDTH=14>
229+
230+   
231+
232+</TD>
233+
234+<TD WIDTH=220>
235+
236+5,7 Mb
237+
238+</TD>
239+
240+</TR>
241+
242+<TR VALIGN=TOP>
243+
244+<TD WIDTH=263>
245+
246+Optimized compiler
247+
248+</TD>
249+
250+<TD WIDTH=14>
251+
252+   
253+
254+</TD>
255+
256+<TD WIDTH=111>
257+
258+2,9 Mb
259+
260+</TD>
261+
262+<TD WIDTH=14>
263+
264+   
265+
266+</TD>
267+
268+<TD WIDTH=220>
269+
270+1,6 Mb
271+
272+</TD>
273+
274+</TR>
275+
276+<TR VALIGN=TOP>
277+
278+<TD WIDTH=263>
279+
280+   
281+
282+</TD>
283+
284+<TD COLSPAN=4 WIDTH=372>
285+
286+</TD>
287+
288+</TR>
289+
290+<TR VALIGN=TOP>
291+
292+<TD WIDTH=263>
293+
294+<U>Windows XP 32 bits / Lazarus 32 bits</U>
295+
296+</TD>
297+
298+<TD COLSPAN=4 WIDTH=372>
299+
300+</TD>
301+
302+</TR>
303+
304+<TR VALIGN=TOP>
305+
306+<TD WIDTH=263>
307+
308+Default application
309+
310+</TD>
311+
312+<TD WIDTH=14>
313+
314+   
315+
316+</TD>
317+
318+<TD WIDTH=111>
319+
320+11,8 Mb
321+
322+</TD>
323+
324+<TD WIDTH=14>
325+
326+   
327+
328+</TD>
329+
330+<TD WIDTH=220>
331+
332+2,14 Mb
333+
334+</TD>
335+
336+</TR>
337+
338+<TR VALIGN=TOP>
339+
340+<TD WIDTH=263>
341+
342+Optimized compiler
343+
344+</TD>
345+
346+<TD WIDTH=14>
347+
348+   
349+
350+</TD>
351+
352+<TD WIDTH=111>
353+
354+1,62 Mb
355+
356+</TD>
357+
358+<TD WIDTH=14>
359+
360+   
361+
362+</TD>
363+
364+<TD WIDTH=220>
365+
366+1,50 Mb
367+
368+</TD>
369+
370+</TR>
371+
372+<TR VALIGN=TOP>
373+
374+<TD WIDTH=263>
375+
376+   
377+
378+</TD>
379+
380+<TD COLSPAN=4 WIDTH=372>
381+
382+</TD>
383+
384+</TR>
385+
386+<TR VALIGN=TOP>
387+
388+<TD WIDTH=263>
389+
390+<U>Windows Seven 64 bits / Lazarus 64 bits</U>
391+
392+</TD>
393+
394+<TD COLSPAN=4 WIDTH=372>
395+
396+</TD>
397+
398+</TR>
399+
400+<TR VALIGN=TOP>
401+
402+<TD WIDTH=263>
403+
404+Default application
405+
406+</TD>
407+
408+<TD WIDTH=14>
409+
410+   
411+
412+</TD>
413+
414+<TD WIDTH=111>
415+
416+12,3  Mb
417+
418+</TD>
419+
420+<TD WIDTH=14>
421+
422+   
423+
424+</TD>
425+
426+<TD WIDTH=220>
427+
428+3,20 Mb
429+
430+</TD>
431+
432+</TR>
433+
434+<TR VALIGN=TOP>
435+
436+<TD WIDTH=263>
437+
438+Optimized compiler
439+
440+</TD>
441+
442+<TD WIDTH=14>
443+
444+   
445+
446+</TD>
447+
448+<TD WIDTH=111>
449+
450+2,14 Mb
451+
452+</TD>
453+
454+<TD WIDTH=14>
455+
456+   
457+
458+</TD>
459+
460+<TD WIDTH=220>
461+
462+2,16 Mb
463+
464+</TD>
465+
466+</TR>
467+
468+</TABLE>
469+
470+### Hiba: 'Fatal: Circular unit reference between a and b'
471+
472+Ez egy gyakori dolog, ami az új felhasználókkal történhet, amikor két form-ot készít, melyekből egymás tulajdonságait akarja elérni. A fenti hiba az interface részben a uses használatakor keletkezik, ezért a hivatkozást át kell tenni az implementation részbe. Példa:
473+
474+Ez hibát okoz:
475+
476+` unit a;`\
477+` `\
478+` interface`\
479+` `\
480+` uses b;`\
481+` `\
482+` implementation`\
483+` `\
484+` end.`\
485+` ...`\
486+` unit b;`\
487+` `\
488+` interface`\
489+` `\
490+` uses a;`\
491+` `\
492+` implementation`\
493+` `\
494+` end.`
495+
496+Ez viszont nem:
497+
498+` unit a;`\
499+` `\
500+` interface`\
501+` `\
502+` implementation`\
503+` `\
504+` uses b;`\
505+` `\
506+` end.`\
507+` ...`\
508+` unit b;`\
509+` `\
510+` interface`\
511+` `\
512+` implementation`\
513+` `\
514+` uses a;`\
515+` `\
516+` end.`
517+
518+### Miért lassú az alkalmazások építése Windows-on?
519+
520+Ez a hiba javítva lett az FPC 2.2 és a Lazarus 0.9.24 változataiban. Frissítsd a Lazarus-t. Régebbi változatokkal kapcsolatban olvasd el a következő szöveget.
521+
522+Általánosságban elmondható, hogy a fordítási idő Windows-on több időt vesz igénybe, mint más rendszereken, mert a GNU Linker, amit a Free Pascal használ lassú ezen a rendszeren. Ez a jelenség csak a Windows-on áll fenn, és csak a régebbi gép (1Ghz alatt) valamint kevés memória (128MB vagy kevesebb) esetén zavaró.
523+
524+Ezen kívül, ha az LCL-t a "smartlink" kapcsolóval használod akkor az összefűzés sokkal lassabb lesz. Egy leírás erről itt található: [[File size and smartlinking]] *(angolul - kidolgozás alatt)*
525+
526+Egy belső összefűző (linker) lett kifejlesztve, de csak a Free Pascal 2.2 változatától kezdve lesz elérhető (természetesen az SVN-ből is elérhető). Látványosan lecsökkenti az összefűzés idejét.
527+
528+**Megjegyzés**: A 2.1.1 változat Windows-on egy olyan belső összefűzőt használ amely már egy kicsit gyorsabb. Az ezzel újrafordított Lazarus kb. 280MB-ot foglal el.
529+
530+### Melyikre van szükségem: ppc386.cfg vagy fpc.cfg?
531+
532+Csak az fpc.cfg kell neked. Így a fordító tudja hogy hol vannak a függvénytárak.
533+
534+### Hogyan fordítsam a lazarus-t?
535+
536+Valahogy így:
537+
538+`$ cd lazarus`\
539+`$ make clean all`
540+
541+### Hogyan fordíthatok más projekteket, amik az LCL-en az alapulnak?
542+
543+Ha nem használhatod az IDE-t a fordításhoz, használd a 'lazbuild' programot. Ez egy parancssoros változata az IDE-nek, lazarus projektek és csomagok építéséhez. Ha az LCL alkalmazást az IDE és a lazbuild nélkül akarod elkészíteni, add következő sorokat az *fpc.cfg* fájlhoz:
544+
545+`  # searchpath for other toolkits (Linux)`\
546+`  -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/{Készleted}`
547+
548+`  # searchpath for other toolkits (Windows)`\
549+` -Fu/{LazarusKönyvtárad}/components/units/{Készleted}`
550+
551+
552+Ahol {a Készleted} a következők lehetnek: *gtk2*, *gnome*, *qt* vagy *win32*. Ez után futtasd ezt a parancsot:
553+
554+
555+ppc386 projekted.pp
556+
557+**Megjegyzés:** Ne felejtsd el telepíteni a fejlesztői csomagokat az adott készlethez, különben egy ehhez hasonló üzenetet kaphatsz: '[[Linker message: cannot find -l/hu|Linker message: cannot find -l]]'.
558+
559+### Melyik FPC változatra van szükség?
560+
561+A Lazarus 0.9.28 legalább az FPC 2.4 változatát igényli.
562+
563+### Nem tudom fordítani a Lazarus-t
564+
565+1. Ellenőrizd, hogy a fordító megfelő változatát használod
566+2. Ellenőrizd, hogy a függvénytárak (fpc) ugyanehhez a változathoz valók
567+3. Ellenőrizd, hogy a fordító telepítési útvonalának nevében vannak-e szóközök. Ne legyenek!
568+4. Ellenőrizd, hogy van-e fpc.cfg fájl és nincs régi ppc386.cfg
569+5. Nézd át az operációs rendszerrel összefüggő GY.I.K.-t
570+
571+### Amikor egy projektet fordítok, hibaüzenetet kapok
572+
573+#### "Cannot find Unit interfaces". Hogyan oldjam meg?
574+
575+Ez azt jelenti hogy a fordító nem találja az 'interfaces.ppu' fájlt **vagy** azt jelenti, hogy talált, de hibás vagy érvénytelen (régi).
576+
577+Ez a unit megtalálható a "{LazarusDir}\lcl\units\\{TargetCPU}-{TargetOS}\\{LCLWidgetSet}\interfaces.ppu" útvonalon. Például: "/home/username/lazarus/lcl/units/i386-linux/gtk/interfaces.ppu".
578+
579+Ellenőrizd, hogy csak ott van. Ha több változatod is van interfaces.ppu fájlból, akkor valószínűleg rosszak a beállításaid (például hozzáadtál egy LCL könyvtárat a keresési útvonalhoz). Töröld az interfaces.ppu minden példányát, kivéve egyet a fenti könyvtárban.
580+
581+Ha más ablakelem-készletet (widgetset) választottál mint amivel a Lazarus készült, le kell fordítanod az LCL-t is ehhez az ablakelem-készletet.
582+
583+Ha ott van, de mégis ezt a hibaüzenetet kapod akkor eltérő fordítót/rtl-t használsz a projekted fordításához, mint amivel a Lazarus IDE készült. A következők egyikét teheted:
584+
585+- Építsd újra az LCL-t (vagy az egész Lazarus-t) az "Environmnent Options" között kiválasztott fordítóval. Ezt megteheted a "Tools\|Build Lazarus" menüponttal. Előtte nézd át a vonatkozó beállításokat a "Tools\|Configure Build Lazarus" menüpontra kattintva.
586+- Változtasd meg a kiválasztott fordítót az "Environment Options" között arra amelyikkel a Lazarus-t fordítottad. Figyelmesen nézd meg az "Environment Options" között, hogy a megfelelő útvonal van-e beállítva a "Lazarus Directory" és az "FPC sources directory" mezőben. Ellenőrizd, hogy csak egy változata legyen a fordító beállításait tartalmazó fpc.cfg fájlnak - ennek helye a /etc/ könyvtár Linux/Unix rendszereken vagy Windows esetén az a könyvtár ahol az FPC fordító található. Próbáld futtatni az "fpc -vt bogus" parancsot hogy ellenőrizhesd melyik fpc.cfg van használatban a rendszereden. Felesleges példányok maradhatnak amikor újabb változattal frissíted a fordítót; ezek a felhasználói könyvtáradban vagy abban a könyvtárban lehetnek amelyben az új fordítót építetted. TÖRÖLD EZEKET!
587+- Esetleg megváltoztathatod a projekt számára kiválasztott ablakelem-készletet. Egy példa: az "objectinspector" ami a Lazarus része alapértelmezés szerint gtk-ra van beállítva. Ennek fordítása biztosan előidézi a "Can't find unit interfaces" üzenetet Windows-on. Az ablakelemek átállítása "default(Win32)"-re megoldja a problémát: "Project\|Project Options\|Compiler Options...\|LCL Widget Type (various)".
588+
589+### Amikor egy delphi projektet akarok fordítani Lazarus-szal, hibaüzenetet kapok
590+
591+#### at the line :{\$R *.DFM} Hogyan oldhatom meg ezt a problémát?
592+
593+A Lazarus (vagy inkább a Linux) nem ismeri az adatforrásokat (resources), abban a formában ahogy a Delphi/Win32 használja. Ezért a Lazarus egy másik módot alkalmaz amely nagyjából egyenértékű vele. Használhatod a Delphi ablakelrendezéseket (.dfm fájlokat) a következő lépésekkel:
594+
595+- Szükséged van a .dfm fájlok szöveges változatára. A D5 és újabb változatok ilyet készítenek alapértelmezés szerint. Ha régebbi fájljaid vannak: <span class="kbd">Alt</span>+<span class="kbd">F12</span> hogy szövegként lásd aztán másolás/beillesztés. Ha szöveges .dfm fájlod van, csak másold egy .lfm fájlba.
596+- Készíts egy fájlt a lazres programmal (a lazarus/tools könyvtárban található): lazres formod.lrs formod.lfm
597+- Add a következő sorokat a "initialization" részhez:
598+
599+`     initialization`\
600+`     {$I formod.lrs}`
601+
602+Tartsd észben, hogy még nem minden tulajdonságot (property) támogat a Lazarus, amik a .dfm fájlokban előfordulhatnak, ezért esetleg összeomolhat.
603+
604+Szerk: Az FPC 2.4.0 óta, a Delphi stílusú adatforrások is támogatottak, így már semmit sem kell megváltoztatnod. Megjegyzés: még mindig ajánlott a Lazarus Delphi project converter használata, mivel előfordulhatnak nem támogatott tulajdonságok.
605+
606+#### 'Identifier not found LazarusResources'.
607+
608+Amikor a Lazarus létrehoz egy form-ot, hozzáad néhány unitot a unitod uses részéhez. Azonban Delphi unitok Lazarus unittá átalakításakor ez ez nem történik meg. Ezért neked kell hozzáadnod az LResources unitot a form unitjának uses részéhez.
609+
610+### Amikor egy objektum eseménykezelőjét hívom, pl. egy gomb az onclick()-jét akkor a következő hibaüzenetet kapom: 'ERROR unit not found: stdCtrls'
611+
612+Ellenőrizd a "Project\|Project Inspector"-ban, hogy a projekted az 'LCL' csomagokon alapul és hogy telepítetted az FPC forráskódjait.
613+
614+A Lazarus a fejlesztőkörnyezet (IDE) és az LCL vizuális komponensek együttese. Minden egyéb, mint az IO, a Database, az FCL és az RTL az FPC által van biztosítva. Az IDE igényli az összes forráskód útvonalát.
615+
616+Az FPC forráskódjainak útvonala beállítható a menüből indulva: "Environment\|Environment Options\|Files\|FPC source directory"
617+
618+### Hogyan építhetek be egy kis fájlt a futtatható állományba, hogy ne legyen külön fájl? Hogyan építhetek be erőforrást?
619+
620+Például:
621+
622+`/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...`
623+
624+Létrehozza a sound.lrs fájlt a sound1.wav és sound2.wav fájlokat felhasználva.
625+
626+Ezután illeszd a kódodba a form .lrs *után*:
627+
628+`...`\
629+`initialization`\
630+`{$i unit1.lrs} // ez a fő erőforrás fájl (első)`\
631+`{$i sound.lrs} // felhasználó által meghatározott erőforrás fájl`\
632+\
633+`end.`
634+
635+A programodban így használhatod:
636+
637+`Sound1AsString:=LazarusResources.Find('sound1').Value;`
638+
639+### Mit jelentenek a különböző fájltípusok amiket a Lazarus használ?
640+
641+A [[Lazarus Tutorial|Lazarus Tutorial#The Lazarus files]] cikk részletesen, példákkal írja le a fájltipus kiterjesztéseket. Ez egy összefoglaló lista:
642+
643+`*.lpi`
644+Lazarus Project Információ fájl (XML formátum; tartalmazza a projekt egyedi beállításait)
645+
646+`*.lpr`
647+Lazarus Program fájl; a főprogram Pascal forráskódját tartalmazza
648+
649+`*.lfm`
650+Lazarus Form fájl; információkat tartalmaz egy form összes eleméről (egyedi, a Lazarus által használt szöveges formátum; a műveletek Pascal forráskóddal megírva a megfelelő `*.pas` fájlban találhatók)
651+
652+`*.pas` vagy `*.pp`
653+Pascal forráskódú Unit (tipikusan egy form-hoz tartozik amelynek adatai a megfelelő `*.lfm` fájlban találhatók)
654+
655+`*.lrs`
656+Lazarus Resource fájl (erőforrás, ez egy generált fájl; nem szabad összetéveszteni a Windows erőforrás fájlokkal).
657+
658+Ilyen fájlokat a lazres (a Lazarus/Tools könyvtárban található) eszközzel lehet létrehozni a parancssorból indítva: lazres fajlom.lrs fajlom.lfm
659+
660+`*.ppu`
661+Lefordított unit
662+
663+`*.lpk`
664+Lazarus csomag (package) információ fájl. (XML formátum; a csomag egyedi beállításait tartalmazza)
665+
666+### Amikor egy szövegfájlt deklarálok így: *var mytext: text;* , Hibaüzenetet kapok: "Unit1.pas(32,15) Error: Error in type definition". Hogyan javíthatom?
667+
668+A TControl osztály (class) rendelkezik egy [[doc:lcl/controls/tcontrol.text.html|Text]] nevű tulajdonsággal (property). Egy form-hoz tartozó eljárásban (method) ennek elérhetősége elsőbbséget élvez a System unitban található [[doc:rtl/system/text.html|Text]] típushoz képest. Használhatod a [[doc:rtl/system/textfile.html|TextFile]] típust, ami egy álnév a Text típus számára, vagy a típus megadásakor a típusnév elé írhatod a unit nevét.
669+
670+`var`\
671+`  MyTextFile: TextFile;`\
672+`  MyText: System.Text;`
673+
674+Hasonló jelenség előfordulhat a szöveges fájl azonosítók kiosztásakor és a fájlok bezárásakor is. A TForm rendelkezik *assign* és [[doc:lcl/forms/tcustomform.close.html|Close]] eljárással (method) is. Használhatod az [[doc:rtl/objpas/assignfile.html|AssignFile]] és [[doc:rtl/objpas/closefile.html|CloseFile]] eljárásokat vagy beszúrhatod a *System* unit nevét.
675+
676+### Hibaüzenetet kapok amikor a Printer.BeginDoc-ot használom
677+
678+A Printers unitot hozzá kell adnod a uses részhez.
679+
680+A Printer4Lazarus csomagot hozzá kell adnod a projekted függősdégeihez (requirement) az IDE menüjéből indulva: "Project\|Project Inspector\|Add\|New Requirement\|Package Name:"
681+
682+Ha a Printer4Lazarus csomag nincs a legördülő listában amikor megnyitod akkor telepíteni kell. A csomag része a Lazarus telepítésnek és megtalálható ebben a könyvtárban: "\[lazarus installed directory\]\components\printers"
683+
684+Ha az alapértelmezett telepítési könyvtárat használtad akkor a \[lazarus installed directory\] útvonala:
685+
686+- Windows: c:\lazarus
687+- Linux: /usr/lib/lazarus
688+
689+Ugyanez a megoldás alkalmazható ha a Printer.Printers-re hivatkozáskor kivétel (exception) keletkezik.
690+
691+### Miért egyenlő a TForm.ClientWidth/ClientHeight és a TForm.Width/Height
692+
693+A TForm.Width/Height nem tartalmazza a keretet, mivel nem volt lehetséges lekérdezni a keret méretét minden rendszeren. Megbízható módszer nélkül az LCL rendellenesen mozgathatná vagy a végtelenségig átméretezhetné az ablakokat a képernyőn.
694+
695+Azonban ha lesz megbízható eljárás egy ablak és kerete méretének, illetve helyzetének lekérdezésére minden rendszeren, akkor ez meg fog változni. A régebbi LCL form-okkal való kompatibilitás megtartása érdekében, az új változathoz néhány további eljárás (method) is hozzá lesz adva.
696+
697+## Hibakereső (Debugger)
698+
699+### Hogyan láthatom a hibakeresés kimenetét?
700+
701+Az LCL tartalmaz két eljárást az LCLProc unitban a hibakereső kimenetre történő íráshoz. Ezek a következők:
702+
703+- **DebugLn:** úgy működik mint a WriteLn, de csak string paramétert fogad el.
704+- **DbgOut:** úgy működik mint a Write, de csak string paramétert fogad el.
705+
706+Normális körülmények között a kimenet az stdout-ra kerül. Ha az stdout zárt (például amikor az alkalmazás {\$AppType Gui} vagy a -WG opciókkal lett lefordítva Windows-on), nem lesz írás a kimenetre.
707+
708+A hibakeresés kimenete fájlba is írható. Az LCLProc unit az initialization részében ellenőrzi a Lazarus.exe parancssori paramétereit a '--debug-log=\<file\>' kapcsolót keresve. Ha megtalálja akkor a további hibakeresési kimenetek a \<file\>-ba lesznek írva.
709+
710+Ha nincs megadva a '--debug-log' parancssori paraméter, akkor egy xxx_debuglog nevű környezeti változó létezését ellenőrzi az operációs rendszerben, melyben az xxx a programfájl neve kiterjesztés nélkül. A Lazarus számára ez lazarus_debuglog. Ha egy ilyen környezeti változó létezik, akkor az így megadott fájlt fogja használni a hibakeresési kimenetre írt adatok mentéséhez. Például: ha ezt teszed:
711+
712+`set lazarus_debuglog=c:\lazarus\debug.txt`
713+
714+a hibakeresési kimenet a c:\lazarus\debug.txt fájlba lesz írva.
715+
716+Minden alkalmazás amely használja az lclproc unitot, használhatja ezt a lehetőséget.
717+
718+Lazarus hibakeresés
719+A leghasználhatóbb módszer Windows-on a konzolt használata kimenetként, ehhez add az {\$APPTYPE console} direktívát a lazarus.pp-hez, aztán építsd újra a Lazarus-t.
720+
721+### Hogyan figyelhetem a tulajdonságokat? (property)
722+
723+A legutóbbi fejlesztői (2.5.1) vagy a 2.4-es változatot kell használnod.
724+
725+Ha az alkalmazást a -gw (dwarf debug info) használatával fordítod, akkor figyelheted a tulajdonságokat.
726+
727+Megjegyzendő hogy ez csak olyan a tulajdonságokra igaz amelyek közvetlenül változókat takarnak (a "read" deklaráció az osztály egy tagjára mutat és nem egy funkcióra).
728+
729+Ha a tulajdonság egy művelet végeredményét adja vissza akkor nagyon veszélyes azok kiértékelése/figyelése. Szükséges lehet a művelet végrehajtása, és ez néha változók értékének megváltoztatását eredményezheti. Egyszerűbben fogalmazva megváltozhat az alkalmazásod állapota a hibakeresőben, és a további kódfuttatás, hibakeresés vagy figyelés érvénytelen eredményt adhat.
730+
731+A lehetőség az eljárások visszatérési értékének figyelésére (a fentebbi kockázatok mellett), és e miatt kódok hívása a Debugger-ből még nincs kidolgozva.
732+
733+### Miért nem mutatja a hibakereső az egyes Változókat/Struktúrákat ("no such symbol"/"incomplete type")
734+
735+A következő hibakeresési problémák esetén:\
736+\- tulajdonságok (property-k)\
737+\- array of ... (dinamikus tömbök)\
738+\- változók beágyazott eljárásokban\
739+\- "no such symbol in context"\
740+\- "incomplete type"\
741+olvasd el ezt a cikket: [[GDB Debugger Tips]] *(angol)*
742+
743+### Hogyan használható a hibakereső, csomagokban található FCL komponenseken Lazarus-szal
744+
745+Az FCL komponensek és osztályok alapértelmezetten hibakeresési információk nélkül lettek lefordítva és ezért a gdb nem tudja elérni az metódusokat és a tulajdonságokat. A komponensek csomagjait újra kell építeni a "-gl" kapcsolóval.
746+
747+A következő példa feltételezi hogy egy Linux összeállítás használatát a /usr/local/ telepítési útvonallal és azt hogy az fcl-db adatbázis kezelő csomag az aminek tartalmaznia kell a hibakeresési információkat. A példában az fcl-db szerepel, de értelem szerűen bármely más csomaggal is működik.
748+
749+Mielőtt elkezded, meg kell keresned az FPC beállításait tartalmazó fájlt: /etc/fpc.cfg. Nézd át a tartalmát és keresd meg az FPC telepítési útvonalát. Keress az fpc.cfg fájlban egy sort aminek az elején -Fu található:
750+
751+`-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*`
752+
753+A Make szkriptek által lefordított unitok az INSTALL_PATH/lib/fpc/\$fpcversion/units/\$fpctarget/ könyvtárba kerülnek, ezért biztosnak kell lenned abban hogy a telepítési útvonal a /usr/local, és ezt kell megadni INSTALL_PREFIX-ként, különben a Make által fordított unitok olyan helyre is kerülhetnek ahová nem tartoznak vagy a Make szkriptek hiba miatt le is állhatnak.
754+
755+**1. lépés**: Nyisd meg a terminál ablakot\
756+**2. lépés**: cd /user/local/share/src/fpc-2.3.1/fpc/fcl-db/\
757+**3. lépés**: sudo make clean all install INSTALL_PREFIX=/usr/local OPT=-gl\
758+Megjegyzés: az INSTALL_PREFIX paramétert megfelelően be kell állítani a unitok megfelelő elhelyezése érdekében!
759+
760+A példában a /usr/local az alapértelmezett telepítési útvonal Linux-on, de más operációs rendszereken más lehet.
761+
762+`make clean all install INSTALL_PREFIX=/usr/local OPT=-gl`
763+
764+Végül bármelyik FCL unit újrafordítása után szükséges lehet az LCL újrafordítása is ugyanígy.
765+
766+### Gondok a GDB használatával macOS rendszeren
767+
768+[[GDB Debugger Tips|Olvasd el a hibakereső tippeket Mac rendszerhez]] (angol)
769+
770+## Közreműködés / Javítás a Lazarus-ban
771+
772+### Készítettem egy foltot (patch) amivel az IDE Üzenetek (Messages) ablaka a Forráskód-Szerkesztő (Source Code Editor) aljához rögzíthető
773+
774+Ezeket a foltozásokat nem alkalmazzuk, mivel az ablakok kívánt összekapcsolási módjának csak egy kis része van kidolgozva bennük. A cél egy teljes rögzítéskezelő-rendszer elkészítése és használata. Egy teljes rögzítéskezelő-rendszer az IDE összes ablakát össze tudja kapcsolni a felhasználó által meghatározott módon. Például az üzenetek ablakát a forráskód-szerkesztő fölé vagy alá vagy... vagy semmit sehová. Minta:
775+
776+ +-------------------++--+
777+ |menü || |
778+ +-------------------+| |
779+ +--++---------------+| |
780+ |PI|| Forráskód ||CE|
781+ +--+| Szerkesztő || |
782+ +--+| || |
783+ | |+---------------++--+
784+ |OI|+-------------------+
785+ | ||üzenetek |
786+ +--++-------------------+
787+
788+A rögzítéskezelő tudja elmenteni az elrendezést és visszatölteni a következő betöltéskor. A rögzítéskezelőnek nem szükséges a fogd és vidd módszert használnia. Minden foltozgatás ami rögzítéskezelő nélkül kapcsolja össze az ablakokat, nehézzé teszi egy rögzítéskezelő kidolgozását és vissza lesz utasítva.
789+
790+Ideiglenes megoldásként használhatod ezt a kiegészítést az IDE-hez: [[Manual Docker]]
791+
792+### Javítottam/fejlesztettem a Lazaruszon. Hogyan adhatom hozzá a változtatásokat a hivatalos Lazarus forráskódhoz?
793+
794+Készíts egy foltot (patch) és küldd el a fejlesztőknek. Részletek itt találsz: [[Creating A Patch]]. *(angolul)*
795+
796+### Hogyan lehetek Lazarus fejlesztő, az SVN és a hibakövető (bug-tracker) kezelője?
797+
798+Mindenek előtt: tanulj a Lazarus-ról, ezzel növelve a tudásod és a hozzáértésed. Kezdd a [[Lazarus Documentation/hu|wiki cikkek]] olvasásával, olvasd át a Lazarus forráskódját, vess néhány pillantást a [Lazarus Bug-Tracker](http://www.lazarus.freepascal.org/mantis), javíts ki néhány hibát, és ha úgy gondolod készen állsz, vedd fel a kapcsolatot a fejlesztőkkel a [levelezőlistán](http://www.mail-archive.com/lazarus@miraclec.com).
799+
800+## Hol vannak a ... definiciók
801+
802+### Virtuális billentyű konstansok
803+
804+A virtuális billentyű konstansok az [[doc:lcl/lcltype|LCLType]] unitban vannak definiálva. Add a <b>uses</b> részhez az LCLtype unitot.
805+
806+## Az IDE használata
807+
808+### Hogyan használhatom az "azonosító kiegészítés" ("identifier completion") lehetőséget?
809+
810+Az azonosítók kiegészítése a <span class="kbd">ctrl</span>+<span class="kbd">szóköz</span> lenyomásával kérhető. Beállítható az automatikus kiegészítés késleltetése is, a menüből indulva: 'Environment\|Editor Options\|Code Tools\|Automatic Features'.
811+
812+## Linux
813+
814+### Hogyan használhatom a hibakeresőt az IDE nélkül?
815+
816+Mindenek előtt egy hibakeresőre lesz szükséged. Linux-on a szabványos hibakereső a gdb, melyhez több grafikus felületű kezelőprogram is készült. Egy gyakran használt ilyen program a ddd, mely a legtöbb Linux disztrinúciónak része. A lazarus/lcl hibakeresési információkkal történő fordításához és a hibakeresés indításához a következőwith parancsokat kell kiadni:
817+
818+` $ make clean; make OPT=-dDEBUG`\
819+` $ ddd lazarus`
820+
821+Legyél figyelmes, mivel a ddd nem teljesen úgy működik mint a Lazarus hibakaresője. Ha egy változó tartalmát kell megjeleníteni ügyelned kell arra, hogy a ddd/gdb megkülönbözteti a kis és nagy betűket, miközben a Pascal nem teszi ezt. E miatt az összes változó nevét nagy betűkkel kell írnod, hogy láthasd a tartalmukat. További információkat az FPC dokumentációjában találsz.
822+
823+### Tudom futtatni a hibakeresőt, de ddd nem találja a forráskódjaimat vagy panaszkodik, hogy nincs bennük kód. Mi ez?
824+
825+Ez az útvonalakkal kapcsolatos hiba a gdb és a ddd esetében is. Így kerülheted el:
826+
827+- Használt a "Change directory" (könyvtár váltása) parancsot a ddd menüjéből és válaszd a könyvtárat ahol a forráskódok találhatók. E módszer hátránya hogy nem tudod használni a teljes forráskódot az így indított programhoz (pl.: Lazarus). Ezért több alkalommal is szükség lehet könyvtárváltásra.
828+- A ddd menüjében kattints az \[Edit\] \[gdb-settings\] lehetőségre és állítsd be a keresési útvonalat
829+- Hozd létre a \$(HOME)/.gdbinit fájlt a következőképpen:
830+
831+`     directory /utvonal/lazarus`\
832+`     directory /utvonal/lazarus/lcl`\
833+`     directory /utvonal/lazarus/lcl/include`
834+
835+### Hibaüzenetet kapok az összefűzés közben, ami azt mondja "/usr/bin/ld can't find -l\<valami_lib\>"
836+
837+**Csomag alapú összeállítások**
838+Telepítened kell azt a csomagot, amelyik tartalmazza a lib\<valami_lib\>.so vagy lib\<valami_lib\>.a fájlokat. A dinamikus függvénytárak névkiterjesztése linux-on .so, a statikus függvénytáraké pedig .a. Néhány Linux összeállításban telepítve van az adott (rpm, deb) csomag amely tartalmazza a \<valami_lib\> állományt, de ilyenkor is telepítened kell a fejlesztői (rpm, deb) csomagokat, amelyek neve általában \<csomagnév\>-dev, amiben megtalálható a függvénytár .a (statikus) és/vagy .so (dinamikus) változata.
839+
840+Egyes összeállításokban van parancs amellyel meg lehet keresni, hogy melyik csomag tartalmaz egy adott fájlt:
841+
842+**Mandriva**
843+
844+`[]$ urpmf lib<valami_lib>.so`
845+
846+
847+listát készít az összes csomagról amely tartalmazza a lib\<valami_lib\>.so fájlt, ezek közül az egyik -devel végződésűt kell telepítened.
848+
849+
850+**Debian**
851+
852+
853+telepítsd az apt-file eszközt (apt-get install apt-file) majd
854+
855+`[]$ apt-file search lib<valami_lib>.so`
856+
857+
858+listát készít az összes csomagról amely tartalmazza a lib\<valami_lib\>.so fájlt, ezek közül az egyik -dev végződésűt kell telepítened.
859+
860+**SuSE**
861+
862+A SuSE a gtk fejlesztői függvénytárakat a /opt/gnome/lib könyvtárba telepíti (vagy a /opt/gnome/lib64 könyvtárba 64 bites rendszeren), ami nem a szokásos helye a függvénytáraknak. Egyszerűen add ezt az útvonalat a /etc/fpc.cfg fájlhoz (így: -Fl/opt/gnome/lib).
863+
864+### Hogyan alakíthatok át kylix 2 projektet Lazarus projekté?
865+
866+### Amikor a Lazarus-t fordítom a fordító nem talál egy unitot. pl.: "gtkint.pp(17,16) Fatal: Can't find unit GLIB"
867+
868+1\. Ellenőrizd egy tiszta fordítással is, így: 'make clean all'
869+
870+2\. Ellenőrizd, hogy a fordító megfelelő változatát használod (2.0.4 vagy újabb)
871+
872+3\. Ellenőrizd, hogy a fordító a megfelelő beállítási fájlt használja-e. A normál telepítés létrehozza a /etc/fpc.cfg fájlt, de az FPC keresni fogja a ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg fájlokat is és csak azt használja amelyiket előbb találja meg.
873+
874+
875+**Tipp:** Megtudhatod, hogy melyik beállítási fájl van használatban a következő paranccsal: 'ppc386 -vt bogus'
876+
877+Törölj minden ppc386.cfg ha már nincs rá szükséged.
878+
879+4\. Ellenőrizd, hogy a beállítási fájl (/etc/fpc.cfg) a megfelelő útvonalakat tartalmazza. Három, ezekhez sornak kell a fájlban:
880+
881+`   -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget`\
882+`   -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl`\
883+`   -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*`
884+
885+
886+Az útvonalak első része (/usr/lib/fpc) a rendszeredtől függ. Egyes rendszereken például /usr/local/lib/fpc/... .
887+
888+**Tipp:** A keresési útvonalakat is megjelenítheted a következő parancsal: 'ppc386 -vt bogus'
889+
890+5\. Ellenőrizd, hogy a beállítási fájl (/etc/fpc.cfg) nem az LCL forráskódokra (.pp, .pas) mutató útvonalakat tartalmaz:
891+
892+` nem jó: -Fu(lazarus_source_directory)/lcl`\
893+` nem jó: -Fu(lazarus_source_directory)/lcl/interfaces/gtk`
894+
895+
896+Ha az LCL-t minden FPC projektedhez hozzá akarod adni, ellenőrizd hogy a két útvonal úgy néz ki mint a következők és fenti FPC lib útvonak után vannak elhelyezve:
897+
898+` -Fu(lazarus_source_directory)/lcl/units/$fpctarget`\
899+` -Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk`
900+
901+6\. Ellenőrizd, hogy a hiányzó unit (glib.ppu) megtalálható az fpc lib könyvtárban. Például a gtk.ppu megtalálható a /usr/lib/fpc/\$fpcversion/units/i386-linux/gtk/ könyvtárban. Ha nem létezik akkor az fpc lib sérült és újra kell telepíteni.
902+
903+7\. Ellenőrizd, hogy a fájlok egy csatolt NFS könyvtárban vannak-e. Néhány esetben az NFS frissítések helytelenül hozhatnak létre fájlokat. Próbáld meg áthelyezni a forráskódokat egy nem NFS könyvtárba és ott fordrítani.
904+
905+8\. Ha még mindig nem sikerült próbáld használni a samplecfg szkriptet a következő módon:
906+
907+*\#* cd /usr/lib/fpc/*version*/
908+
909+*\#* sudo ./samplecfg /usr/lib/fpc/*\\\$version* /etc
910+
911+Figyelem! Ne írj / jelet az etc után, mert ha így teszel a rendszer a /etc/fpc.cfg/fpc.cfg fájlt hozza létre. Valójában pedig azt akarjuk, hogy a samplecfg a egy fájlt hozzon létre /etc/fpc.cfg néven és ne a /etc/fpc.cfg könyvtárat.
912+
913+### A bináris változatot telepítettem, de egy egyszerű projekt fordításakor a Lazarus ezt írja:: 'Fatal: Can't find unit CONTROLS'
914+
915+Valószínűleg újabb FPC csomagot használsz annál mint amivel a Lazarus binárisok készültek. A legjobb megoldás a forráskódok letöltése és a Lazarus újrafordítása. Letöltheted a legfrissebb forráskódot (snapshot) vagy használhatod az svn rendszert:
916+
917+` $ bash`\
918+` $ svn checkout `[`http://svn.freepascal.org/svn/lazarus/trunk`](http://svn.freepascal.org/svn/lazarus/trunk)` lazarus`\
919+` $ cd lazarus`\
920+` $ make clean all`
921+
922+Ellenőrizd hogy a Lazarus számára meg van-e adva a forráskódok könyvtárának új útvonala, a menüből indulva: "Environment-\>General Options-\>Files-\>Lazarus Directory Top"
923+
924+### A Lazarus lefordítható, de az összefűzés leáll ezzel: 'libgdk-pixbuf not found'
925+
926+Telepítsd a gdk-pixbuf függvénytárat a gtk1.x-hez:
927+
928+A gdk-pixbuf függvénytár megtalálható a következő helyeken:
929+
930+RPM csomagok: <http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+>...&system=&arch=
931+
932+Debian csomagok: libgdk-pixbuf-dev
933+
934+Forráskódok: <ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/>
935+
936+Külső hivatkozások: [term papers writing service](http://www.flashpapers.com/) [termpapers](http://www.besttermpaper.com/)
937+
938+**Ubuntu 8.10:**
939+
940+Ha a Lazarus-t GTK 2-0 változattal fordítod hibaüzenetet kapsz arról, hogy a "libgdk-pixbuf2.0" nem található. Csak telepítsd a libgtk2.0-dev csomagot az apt-vel így:
941+
942+`apt-get install libgtk2.0-dev`
943+
944+### SuSE rendszeren ezt kapom: '/usr/bin/ld: cannot find -lgtk Error: Error while linking'
945+
946+Régebbi SuSE változatokban (SuSE 11 előtt) telepíteni kell a gtk fejlesztői függvénytárakat a /opt/gnome/lib (vagy a /opt/gnome/lib64 64-bites rendszeren) könyvtárba, ami nem a szabványos elhelyezés a függvénytárak számára. Add a könyvtárat az /etc/fpc.cfg-hez (-Fl/opt/gnome/lib).
947+
948+### A Lazarus összeomlik 'runtime error 211' hibával, miután egy komponenst telepítettem
949+
950+Egy komponens telepítése után a Lazarus összeomlik a következő üzenettel:
951+
952+`Threading has been used before cthreads was initialized.`\
953+`Make cthreads one of the first units in your uses clause.`\
954+`Runtime error 211 at $0066E188`
955+
956+Hogyan javítsam?
957+
958+A fissen telepített komponens szálakkal (threads) dolgozik. Az FPC *nix rendszereken nem építi be automatikusan a szálak támogatását, de szükség van rá. Ennek elindítása a cthreads unitban történik. Minden alkalmazásban, amely a komponenst használja, a főprogram uses részéhez kell adni a cthreads unitot. Ez alól maga a Lazarus sem kivétel. Ez két módon lehetséges:
959+
960+1\) Nyisd meg a csomagot. A csomagszerkesztőben kattints az *Options*-ra. A *Usage* lapon add a *custom* sorhoz a **-dUseCThreads** kapcsolót. Ezután építsd újra az IDE-t. Így a cthreads unit automatikusan használva lesz az IDE-ben unix alatt és a cthreads el lesz indítva.
961+
962+2\) A csomagok módosításának elkerüléséhez, az FPC fordító parancssori kapcsolójának közvetlen használata szükséges. A kattints a *Tools-\>Configure "build Lazarus"* menüpontra. A megjelenő ablakban a Lazarus építési beállításai találhatók, ahol az "Options:" mezőbe írd be **-Facthreads** és kattints az "OK" gombra. A következő lépés a csomag telepítése. A Lazarus a -Facthreads kapcsolóval lesz újraépítve ami azt jelenti hogy a főprogram úgy lesz értelmezve mintha a cthreads unit mindig ott lenne elsőként a uses részben
963+
964+*Tipp:* A régi (össze nem omló) Lazarus is megtalálható lazarus.old néven, ugyanabban a könyvtárban ahol az összeomló Lazarus futtatható állomány van.
965+
966+Lásd még: [[Multithreaded Application Tutorial|Multithreaded_Application_Tutorial#Units_needed_for_a_multithreaded_application]] *(angol)*
967+
968+### Amikor egy szálakkal (threads) dolgozó programot futtatok, hibaüzenetet kapok: 'runtime error 232'
969+
970+A fordító hibaüzenete a következő:
971+
972+`This binary has no thread support compiled in.`\
973+`Recompile the application with a thread-driver in the program uses`\
974+`clause before other units using thread.`\
975+`Runtime error 232`
976+
977+**Megoldás**: Add a cthreads unitot elsőként a uses részhez a főprogramodban, ami általában egy .lpr fájl.
978+
979+### Ubuntu Breezy/Mandriva KDE3 használatakor a betűk a Lazarus IDE-ben túl nagyok
980+
981+A Lazarus a Gtk1.2-re lett fordítva, a Gnome betűtípus beállításai nincsenek hatással a programra, mivel azok a Gtk2-re vonatkoznak. Próbáld meg így: Hozz létre egy fájlt .gtkrc.mine néven a felhasználói (home) könyvtáradban (ha még nincs ott) és add hozzá ezeket a sorokat:
982+
983+ style "default-text" {
984+ fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\
985+ -*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
986+ }
987+
988+ class "GtkWidget" style "default-text"
989+
990+Ha ez nem elég, próbálj létrehozni egy .gtkrc szimbolikus linket ami a .gtkrc.mine fájlra mutat. Ez a megoldás működött Xubuntu 7.10, Mandriva 2009.0 KDE3 rendszereken.
991+
992+### Hogyan használhatnak a gtk programjaim különböző .rc fájlokat?
993+
994+a\) lehetőség: Nevezd át az rc fájlt *programod.gtkrc* névre és helyezd át ugyanabba a könyvtárba ahol a futtatható állomány van.
995+
996+b\) lehetőség: Használd a *GtkInt* unitot és a következő függvényhívást: *GTKWidgetSet.SetRCFilename('kiválasztott_rc_fájl');* Ezt a legjobb az *Application.Initialize* művelet előtt megtenni az .lpr fájlban *{\$IFDEF LCLGtk}* direktívával.
997+
998+c\) lehetőség: Használd a *gtk2* unitot és a *gtk_rc_parse('kiválasztott_rc_fájl'));* valamint a *gtk_rc_reparse_all;* függvényhívásokat.
999+
1000+### Ubuntu-t használok és nem tudok Gtk2-re fordítani, hiányzó függvénytárak miatt
1001+
1002+Az Ubuntu esetében gondot okoz hogy nincsenek minden esetben létrehozva a szimbolikus hivatkozások még akkor sem ha egyébként a függvénytárak telepítve vannak.
1003+
1004+Mielőtt Gtk2-re fordítasz ellenőrizd, hogy minden hiányzó függvénytárhoz létezik a megfelelő szimbolikus link. Ilyesmit kell tenned:
1005+
1006+ cd /usr/lib
1007+ sudo ln -s libgdk-x11-2.0.so.0 libgtk-x11-2.0.so
1008+
1009+Ellenőrizd, hogy a \[valami\].so szimbolikus hivatkozás létezik és az aktuális függvénytárra mutat.
1010+
1011+### Hogyan fordíthatok egy programot Gtk2-re?
1012+
1013+A Gtk2-re fordított IDE egyelőre nem teljesen stabil, de fordíthatsz szoftvert Gtk2-re a Gtk1-es IDE használatával.
1014+
1015+Először az LCL újrafordítása szükséges Gtk2-re. A menüben kattints "Tools-\>Configure Build Lazarus" pontra, majd az LCL-nél válaszd a "clean+build"-et és minden másnál "none"-t. Ezután kattints az "OK" gombra.
1016+
1017+A menüben kattints a "Tools-\>Build Lazarus" pontra.
1018+
1019+Most már fordíthatod a szoftveredet Gtk2-re ha "Compiler options" között az ablakelemkészletet (widgetset) Gtk2-re állítod.
1020+
1021+### Ezt az üzenetet kapom: "\[WARNING\] ** Multibyte character encodings (like UTF8) are not supported at the moment."
1022+
1023+Ez a hiba nem fordul elő a 10535 (0.9.21) számú változat utáni kiadásokban. Ezt megelőzően figyelmeztetésként szolgált UTF-8 kódolt szövegek használata esetén.
1024+
1025+A belső kulcskezelő eljárások gtk1 esetében nem tudták kezelni az igy kódolt billentyűleütéseket, ami azzal járt hogy például ékezetes karakterek esetében rosszul vagy egyáltalán nem érzékelte őket.
1026+
1027+(eredeti szöveg régebbi Lazarus változatokhoz)\
1028+<strike> Ez a figyelmeztetés azt jelenti hogy utf-8 karakterkódolást használsz. Amennyiben Gtk 1-et használsz ez komoly probléma lehet és megakadályozhatja a Lazarus vagy a vele készített alkalmazások megfelelő működését.
1029+
1030+A megoldás, hogy átállítod a helyi karakterkódolást nem utf-8 módra mielőtt a parancssorból elindítod a programot, így:
1031+
1032+ export LC_CTYPE="pt_BR"
1033+ export LANG="pt_BR"
1034+ export LANGUAGE="pt_BR"
1035+ ./lazarus
1036+
1037+A pt_BR helyére természetesen a te országod azonosítója kerüljön. Az automatikus beállításhoz szkriptet is készíthetsz. </strike>
1038+
1039+## Windows
1040+
1041+### Amikor a 'cycle' fordítást használom, ezt kapom: 'The name specified is not recognized as an internal or external command, operable program or batch file.\>& was unexpected at this time'.
1042+
1043+A fordító könyvtárában van egy OS2 parancsfájl make.cmd névvel. Különböző Windows változatok is parancsfájlként ismerik fel ezt, törlöd, mert bár ez szükséges OS2-n, de gondot okoz Windows-on.
1044+
1045+### Amikor 'cycle' fordítást használom, ezt kapom: 'make\[3\]: ./ppc1.exe: Command not found'
1046+
1047+Nem tudni miért, a make elfelejti az útvonalat. Próbáld meg a 'cycle' fordítást az alapkönyvtár beállításával futtatni, így: make cycle BASEDIR=your_fpc_source_dir_herecompiler
1048+
1049+### Amikor a Lazarus-t újra akarom fordítani (make parancsal), üzenetet kapok:
1050+
1051+#### make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * \[interfaces_all\] Error 2
1052+
1053+Frissítened kell a make fájlt.
1054+
1055+#### makefile:27: *** You need the GNU utils package to use this Makefile. Stop.
1056+
1057+Ellenőrizd, hogy az FPC-t nem egy olyan útvonalra telepítetted, aminek a nevében szóköz is van. A Makefile-ban nem támogatott.
1058+
1059+### Hogyan adhatok a programomnak XP kinézetet, mint amilyen a Lazarus-nak is van?
1060+
1061+A menüből indulva: "Project\|Project Options\|Use manifest to enables themes" legyen bejelölve.
1062+
1063+### Amikor egy Lazarus-szal készített alkalmazást futtatok, az DOS ablakkal indul
1064+
1065+Add meg a -WG paramétert (Windows GUI) a fordító parancssorában vagy jelöld be a 'Win32 GUI alkalmazás' jelölőnégyzetet a Lazarus IDE fordítói beállításai között, a menüből indulva: "Projekt / Projekt beállításai / Fordító beállításai / Beállítás és cél / Cél-függő beállítások / Win32 GUI alkalmazás (-WG)".
1066+
1067+## macOS
1068+
1069+### Miért áll le a fordítás 'unknown section attribute: no_dead_strip' üzenettel?
1070+
1071+A 'halott' kódok kiszedését nem támogatja az assembler és az összefűző (linker) az Xcode 1.5 előtt (elérhető a Panther 10.3.9 változatban). Kapcsold ki a következő fordítói beállításokat:
1072+
1073+- Code \> Unit style \> Smart linkable (-CX)
1074+- Linking \> Link Style \> Link smart (-XX)
1075+
1076+### Hibakeresés
1077+
1078+[[GDB Debugger Tips|Olvasd el a hibakereső tippeket Mac rendszerhez]] (angol)
1079+
1080+## Engedélyek (Licencek)
1081+
1082+### Készíthetek kereskedelmi alkalmazásokat a Lazarus-szal?
1083+
1084+Igen, az LCL az LGPL engedélyei szerint használható [[FPC modified LGPL|egy olyan kivétellel/kiegészítéssel]], amely megengedi a statikus összefűzést (linkelést) az alkalmazásod forráskódjának közreadása nélkül. A változtatásokat és fejlesztéseket az LCL kódjában azonban annak forráskódjával együtt terjeszteni kell. A Lazarus IDE a GPL licenc hatálya alatt áll. Az LCL csak azokat a forráskódokat tartalmazza melyek az 'lcl' könyvtárban találhatók, egyéb kódokat nem szabad ide elhelyezni és ezzel álcázni.
1085+
1086+### Miért van egyes komponensek használata korlátozva kereskedelmi alkalmazásokban?
1087+
1088+A Lazarus tartalmaz harmadik féltől származó komponenseket is. Ezek különböző engedélyek szerint használhatók. Ha használni szeretnéd őket, meg kell nézned az engedélyeket a csomagok forrásfájljaiban. A legtöbb harmadik féltől származó komponens a "components" könyvtárban található.
1089+
1090+### Honnan tudhatom meg, hogy egy komponens az LCL része-e?
1091+
1092+Minden LCL unit az 'lcl' könyvtárban található. Az LCL részét képező unitok listája megtalálható a <http://lazarus-ccr.sourceforge.net/docs/lcl/> címen. Ha kódodban egy itt fel nem sorolt unitot használsz, valószínűleg egy olyan komponenst használsz amely nem része az LCL-nek.
1093+
1094+### Készíthetek kereskedelmi bővítményt a Lazarus-hoz?
1095+
1096+Igen, az IDEIntf nevű része az IDE-nek az LGPL engedélyei szerint használható az előbb említett kivétellel, így az abban megosztott adatstruktúrák nem köteleznek arra, hogy a bővítményedet vagy a tervező csomagodat a GPL hatálya alá helyezd. Szabadon választható bármilyen engedélyezésű bővítmény; nem akarjuk korlátozni a választást. Röviden: nem-GPL kompatibilis bővítmények használata is megengedett. Megjegyzendő, hogy nem megengedett egy már lefordított Lazarus terjesztése statikusan beépített, nem-GPL kompatibilis bővítményekkel; azonban szerintünk ez nem komoly korlátozás, mivel a Lazarus könnyen újrafordítható.
1097+
1098+## A fórum használata
1099+
1100+### Miként tehetek fel kérdéseket helyesen a fórumban?
1101+
1102+Első és legfontosabb: **Mindig említsd meg melyik Lazarus, Free Pascal, Vezérlőkészlet (widgetset), CPU és Operációs Rendszer (pontosan meghatározott) változatot használod!** Nem elég annyi hogy a "legfrissebb", mindig egyértelmű változatszámot adj meg. Napi kód (fejlesztői változat) esetén a felülvizsgálat száma (revision number) és/vagy dátuma is fontos.
1103+
1104+Amikor arról érdeklődsz, hogy valami miért nem működik **mindig mellékelj egy rövid forráskódot, ami bemutatja a problémát**. A forráskódot a \[code\] és \[/code\] címkékkel fogd közre (vagy használd a kód beszúrására használatos gombot a fórum eszköztárán). Teljes programokat (forráskód) is mellékelhetsz *zip*-be csomagolva, ehhez jól használható a Lazarus "Projekt / Projekt közzététele ..." menüpontja.
1105+
1106+Ha hibajelzést kapsz a kódoddal kapcsolatban **mindig írd meg a hibaüzenetet**. A fordító, a hibakereső vagy a programod által jelzett hiba egyszerű másolása a legtöbb esetben elegendő lehet. Ha a hibajelzés a programod futása közben keletkezik használd a -gl (sorszámok megjelenítése futási hibák esetén) kapcsolót és ne használj "inline" kódot a fordításkor, így megfelelő információk készülhetnek a visszakövetéshez.
1107+
1108+Gyakran egy kép is hasznos lehet. Képeket feltölthetsz a <http://imageshack.us/> és hasonló oldalakra, aztán add meg a linket.
1109+
1110+Próbálj meg általános áttekintést adni a feladatról (**mi a megvalósítandó cél**) és lehetőleg minél részletesebb leírást a problémáról (**milyen módon próbálod megvalósítani a célt**). Gyakran van sokkal egyszerűbb módja a dolgok véghezvitelének, melyről esetleg nem tudsz.
1111+
1112+Végül, de nem utolsó sorban, győződj meg róla, hogy minden vonatkozó dokumentációt megkerestél és el is olvastál (pl. [[FPC documentation/hu|FPC dokumentáció]] és a Lazarus wiki, lásd pl. [[Lazarus Documentation/hu|Lazarus dokumentáció]]. Továbbá [kereshetsz a fórumon](http://lazarus.freepascal.org/index.php?action=search) is válaszokat: mások talán már találkoztak ugyanazzal a problémával és megoldásaik is lehetnek. Ha látható, hogy már próbáltál megoldást találni az emberek szívesebben segítenek.
1113+
1114+Arról, hogy miként tehetsz fel kérdéseket okosan, itt olvashatsz: [Hogyan kérdezzünk okosan: <http://esr.fsf.hu/smart-questions_hu.html>](http://esr.fsf.hu/smart-questions_hu.html)
1115+
1116+## Közreműködők és megjegyzések
1117+
1118+Ez az oldal az angol nyelvű oldal fordítása, mely az epikwiki [változat](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq) alapján készült.
1119+
1120+---
1121+*From the Free Pascal wiki, page "Lazarus Faq/hu", as it stood on 2020-02-16 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).*
1122+Category: FAQs/hu
1123+Category: Lazarus/hu
1124+Category: Magyar

Back to history