Difference between revisions of "Lazarus Faq/hu"

From Free Pascal wiki
Jump to navigationJump to search
m (Reverted edits by Anson (Talk); changed back to last version by Gábor)
Line 1: Line 1:
{ { Lazarus Faq } }
+
{{Lazarus Faq}}
  
  
<font size="7"> Lazarus GY.I.K. < / font >
+
<font size="7">Lazarus GY.I.K.</font>
  
in progress ...
+
folyamatban...
  
  
Line 10: Line 10:
  
  
== General ==
+
== Általános ==
  
=== Why is it so big the up binaries ? ===
+
===Miért olyan nagyok a létrehozott binárisok?===
The binaries are large because they debug information contain , which gdb (GNU Debugger ) is necessary to use .
+
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.
  
The compiler has a switch which can be removed from the debugging information in the executable file (- Xs ), but because of an error ( 2.0.2 and earlier versions ) it will not work properly . The error been corrected has the compiler 2.0.4 and in future versions of .
+
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.
  
You can use ' strip 'is a program the debug symbols to remove in the executable file. lazarus directory (for example, lazarus \ fpc \ bin \ i386- win32 \).
+
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\).
  
Just type the command " strip - strip -all <a_futtatható_fájl_neve_útvonallal> ".
+
Csak írd a parancssorba: "strip --strip-all <a_futtatható_fájl_neve_útvonallal>".
  
If an even smaller you want your program size of , you can try [ http://upx.sourceforge.net/ UPX ] program. The UPX is a very good compression specifically executable files to compress .
+
Ha még kisebbre akarod a programod méretét, kipróbálhatod az [http://upx.sourceforge.net/ UPX] programot. Az UPX egy nagyon jó tömörítő kifejezetten futtatható állományok tömörítéséhez.  
It includes no memory overhead due to in-place decompression .
+
It includes no memory overhead due to in-place decompression.  
Very quickly compress the files (~ 10 MB / sec in a Pentium 133 machine).
+
Nagyon gyorsan tömöríti ki az állományokat (~10 MB/másodperc egy Pentium 133 gépen).
  
The UPX hazsnálatához enter the command : " upx <a_futtatható_fájl_neve_útvonallal> ".
+
Az UPX hazsnálatához írd a parancssorba: "upx <a_futtatható_fájl_neve_útvonallal>".
  
After each command ( strip and upx ) is finished, a Lazarus - VERSION made a simple GUI application size approx . many will be :
+
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:
* ~ 700KB on Linux
+
* ~ 700kb Linux-on
* ~ 420kb on Windows
+
* ~ 420kb Windows-on
  
A more detailed response to the UPX of using potential drawbacks also can be found here : [ [Size Matters ]]<!-- Size Problems -> ''( in English) .''
+
Részletesebb választ az UPX használatának esetleges hátrányairól is, itt olvashatsz: [[Size Matters]]<!--Méret Problémák--> ''(angolul)''.
  
It is important to note that Lazarus ' hello world ' example program already contains very many important component. Includes :
+
Fontos megjegyezni, hogy a lazarus 'hello world' példaprogram már eleve tartalmaz nagyon sok fontos összetevőt. Tartalmazza:
  
* XML handling library
+
* XML kezelő függvénytár
* Graphics library, png, xpm , bmp and ico files
+
* Képkezelő függvénytár png, xpm, bmp és ico fájlokhoz
* Almost every widget - et the LCL out of ( Lazarus Component Library)
+
* Majdnem minden widget-et a LCL-ből (Lazarus Component Library)
* The total Free Pascal Runtime Library is
+
* Az teljes Free Pascal Runtime Library-t
  
Therefore it is very big, but it almost everything contains what a real world made and a major application may require.
+
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.
  
The Lazarus produced by executable files large sizes start , but only slowly increasing, thanks to the Free Pascal compiler and the method as a lazarus windows operates . A c + + project ( just an example but other languages / tools is also true ), small size kezdődneka ' hello world ' , but size rapidly the many times increases when a need is the ingredients a serious application to write .
+
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.
  
[[ Image : Lazarus_vs_cpp_hu.png ]]
+
[[Image:Lazarus_vs_cpp_hu.png]]
  
  
''' Quick guide to the Lazarus / FPC applications, reducing the size of ''' ''( tested with Lazarus 0.9.26 version of ) ''
+
'''Gyors útmutató a Lazarus/FPC alkalmazások méretének csökkentéséhez''' ''(tesztelve a Lazarus 0.9.26 változatával)''
  
* 1 "Project | Project Options | Compiler Options | Code | Smart Linkable (- CX) "-> True
+
* 1. "Project|Project Options|Compiler Options|Code|Smart Linkable (-CX)" -> Bejelölve
* 2 "Project | Project Options | Compiler Options | Linking | Debugging | " all deleted except the " Strip Symbols From Executable (- Xs ) "- > True
+
* 2. "Project|Project Options|Compiler Options|Linking|Debugging|" minden törölve kivéve a "Strip Symbols From Executable (-Xs)" -> Bejelölve
* 3 "Project | Project Options | Compiler Options | Linking | Link Style | Link Smart (- XX) "-> True
+
* 3. "Project|Project Options|Compiler Options|Linking|Link Style|Link Smart (-XX)" -> Bejelölve
  
The most important element 2 A simple application , the executable file size 1-3 MB will be around 15 to 20 MB instead of . At this point, you could try this: "Project | Project Options | Compiler Options | Code | Optimizations | Smaller Rather Than Faster "-> True ( Warning : this may reduce the decreased interest )
+
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)
  
* 4 ( Or ) Run the " UPX <te_futtatható_programod> 'command the binary to compress of -2 or -3 parameter (Note : As above you can see , the UPX the use of may be drawbacks ).
+
* 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).
  
''' Dimensions change in of a blank applications , settings and operating systems function '''
+
'''Méretek változása egy üres alkalmazás esetén, beállítások és operációs rendszerek függvényében'''
  
The testing versions: Lazarus 0.9.29 and FPC 2.4 ( on Windows FPC 2.2.4 ). for '' Optimized compiler '' the above advice means the application of '' UPX without the use of '' . The '' Default Lazarus '' and has as been installed a package / installer . the '' LCL Without debug informations '' meaning that the Lazarus IDE and LCL debugging information without (- g ) being rebuilt after .
+
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.
  
<table WIDTH=642 BORDER=0 CELLPADDING=1 CELLSPACING=0>
+
<TABLE WIDTH=642 BORDER=0 CELLPADDING=1 CELLSPACING=0>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> < / TD >
+
<TD WIDTH=263></TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> Default Lazarus < / TD >
+
<TD WIDTH=111>Default Lazarus</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> LCL Without debug informations < / TD >
+
<TD WIDTH=220>LCL without debug informations</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> <U> Ubuntu 64 bits / Lazarus 64 bits < / U > < / TD >
+
<TD WIDTH=263><U>Ubuntu 64 bits / Lazarus 64 bits</U></TD>
<TD COLSPAN=4 WIDTH=372> < / TD >
+
<TD COLSPAN=4 WIDTH=372></TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Default < / TD >
+
<TD WIDTH=263>Default application</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 13.4 Mb < / TD >
+
<TD WIDTH=111>13,4&nbsp; Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 7,5 Mb / 8 < / TD >
+
<TD WIDTH=220>7,5 Mb / 8</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Optimized compiler < / TD >
+
<TD WIDTH=263>Optimized compiler</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 4.4 MB < / TD >
+
<TD WIDTH=111>4,4 Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 2.70 Mb ( 0.29svn FPC2.4 2.5) < / TD >
+
<TD WIDTH=220>2,70 Mb (0.29svn FPC2.4 2,5)</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> < / TD >
+
<TD WIDTH=263>&nbsp; &nbsp;</TD>
<TD COLSPAN=4 WIDTH=372> < / TD >
+
<TD COLSPAN=4 WIDTH=372></TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> <U> Ubuntu 32 bits / Lazarus 32 bits < / U > < / TD >
+
<TD WIDTH=263><U>Ubuntu 32 bits / Lazarus 32 bits</U></TD>
<TD COLSPAN=4 WIDTH=372> < / TD >
+
<TD COLSPAN=4 WIDTH=372></TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Default < / TD >
+
<TD WIDTH=263>Default application</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 19.6 Mb < / TD >
+
<TD WIDTH=111>19,6&nbsp; Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 5.7 MB < / TD >
+
<TD WIDTH=220>5,7 Mb</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Optimized compiler < / TD >
+
<TD WIDTH=263>Optimized compiler</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 2.9 MB < / TD >
+
<TD WIDTH=111>2,9 Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 1,6 Mb < / TD >
+
<TD WIDTH=220>1,6 Mb</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> < / TD >
+
<TD WIDTH=263>&nbsp; &nbsp;</TD>
<TD COLSPAN=4 WIDTH=372> < / TD >
+
<TD COLSPAN=4 WIDTH=372></TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> <U> Windows XP 32 bits / Lazarus 32 bits < / U > < / TD >
+
<TD WIDTH=263><U>Windows XP 32 bits / Lazarus 32 bits</U></TD>
<TD COLSPAN=4 WIDTH=372> < / TD >
+
<TD COLSPAN=4 WIDTH=372></TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Default < / TD >
+
<TD WIDTH=263>Default application</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 11.8 Mb < / TD >
+
<TD WIDTH=111>11,8 Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 2.14 Mb < / TD >
+
<TD WIDTH=220>2,14 Mb</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Optimized compiler < / TD >
+
<TD WIDTH=263>Optimized compiler</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 1.62 Mb < / TD >
+
<TD WIDTH=111>1,62 Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 1.50 Mb < / TD >
+
<TD WIDTH=220>1,50 Mb</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> < / TD >
+
<TD WIDTH=263>&nbsp; &nbsp;</TD>
<TD COLSPAN=4 WIDTH=372> < / TD >
+
<TD COLSPAN=4 WIDTH=372></TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> <U> Windows Seven 64 bits / Lazarus 64 bits < / U > < / TD >
+
<TD WIDTH=263><U>Windows Seven 64 bits / Lazarus 64 bits</U></TD>
<TD COLSPAN=4 WIDTH=372> < / TD >
+
<TD COLSPAN=4 WIDTH=372></TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Default < / TD >
+
<TD WIDTH=263>Default application</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 12.3 Mb < / TD >
+
<TD WIDTH=111>12,3&nbsp; Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 3.20 Mb < / TD >
+
<TD WIDTH=220>3,20 Mb</TD>
< / TR >
+
</TR>
<TR Valign=top>
+
<TR VALIGN=TOP>
<TD WIDTH=263> Optimized compiler < / TD >
+
<TD WIDTH=263>Optimized compiler</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=111> 2.14 Mb < / TD >
+
<TD WIDTH=111>2,14 Mb</TD>
<TD WIDTH=14> < / TD >
+
<TD WIDTH=14>&nbsp; &nbsp;</TD>
<TD WIDTH=220> 2.16 Mb < / TD >
+
<TD WIDTH=220>2,16 Mb</TD>
< / TR >
+
</TR>
< / TABLE >
+
</TABLE>
  
=== Why is slow the applications build on Windows ? ===
+
=== Miért lassú az alkalmazások építése Windows-on? ===
  
This error was corrected in the FPC 2.2 and the Lazarus 0.9.24 versions . upgrade the Lazarus was . Older versions in relation to , read the following text.
+
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.
  
Generally speaking, the translation time on Windows takes more time than other systems because the GNU linker, which the Free Pascal uses is slow on this system. This phenomenon only on Windows exists , and only the older machine ( 1Ghz under ) and low memory (128MB or less) event disruptive .
+
Á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ó.
  
In addition , if the LCL the ' SmartLink ' switch, use then the merge much slower will be . A description of this can be found here : [ [File size and smartlinking ] ]'' (in English - in preparation) ''
+
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)''
  
An internal lacing ( linker ) has been developed , but the Free Pascal 2.2 Starting with version will be available (of course, SVN from also available ). Dramatically reduces the stacking time of .
+
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.
  
'' 'Note ''' : The 2.1.1 version on Windows an internal lacing uses which is a bit faster. the same újrafordított Lazarus about . 280MB per occupies .
+
'''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.
  
=== Which one do I need : ppc386.cfg or fpc.cfg ? ===
+
=== Melyikre van szükségem: ppc386.cfg vagy fpc.cfg? ===
  
Only fpc.cfg be you. Thus, the compiler knows the location of the libraries .
+
Csak az fpc.cfg kell neked. Így a fordító tudja hogy hol vannak a függvénytárak.
  
=== How compile to lazarus - t ? ===
+
=== Hogyan fordítsam a lazarus-t? ===
  
Like this:
+
Valahogy így:
 $ Cd lazarus
+
$ cd lazarus
 $ Make clean all
+
$ make clean all
  
=== How can I build other projects , which LCL - en the are based on ? ===
+
=== Hogyan fordíthatok más projekteket, amik az LCL-en az alapulnak? ===
  
If you do not use the IDE to compile , use the ' lazbuild ' program. This is a command-line version of the IDE 's , Lazarus projects and packages for the construction .
+
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.
If the LCL application of the IDE and the lazbuild without want to prepare , add following lines to the '' fpc.cfg '' file :
+
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:
  
   # SearchPath for Other Toolkits (Linux )
+
  # searchpath for other toolkits (Linux)
   -Fu/usr/lib/fpc / $ fpcversion /units / $ fpctarget / { Stocks }
+
  -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/{Készleted}
  
   # SearchPath for Other Toolkits ( Windows)
+
  # searchpath for other toolkits (Windows)
  Fu / { LazarusKönyvtárad } / components / units / { Stocks }
+
  -Fu/{LazarusKönyvtárad}/components/units/{Készleted}
  
: Where { the Pools } include: '' gtk2 '' ,'' gnome '' ,'' qt '' or '' win32 '' . After this, run this command:
+
:Ahol {a Készleted} a következők lehetnek: ''gtk2'', ''gnome'', ''qt'' vagy ''win32''. Ez után futtasd ezt a parancsot:
:: ppc386 projekted.pp
+
::ppc386 projekted.pp
  
'' 'Note : ''' Do not forget to install the development packages for your kit , otherwise a like this message you may get : ' [[ Linker message : can not find -l/hu | Linker message : can not find- l ] ] ' .
+
'''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]]'.
  
=== Which FPC version do I need? ===
+
=== Melyik FPC változatra van szükség? ===
  
Lazarus 0.9.28 at least of the FPC 2.4 version requires .
+
A Lazarus 0.9.28 legalább az FPC 2.4 változatát igényli.
  
=== I can not pay the Lazarus- t ===
+
=== Nem tudom fordítani a Lazarus-t ===
  
# Make sure the compiler as with the version use
+
# Ellenőrizd, hogy a fordító megfelő változatát használod
# Check that the libraries ( FPC) do the same to to the version
+
# Ellenőrizd, hogy a függvénytárak (fpc) ugyanehhez a változathoz valók
# Check that the compiler installation path name if there are spaces . Do not be !
+
# Ellenőrizd, hogy a fordító telepítési útvonalának nevében vannak-e szóközök. Ne legyenek!
# Make sure there is fpc.cfg file and there is no old ppc386.cfg
+
# Ellenőrizd, hogy van-e fpc.cfg fájl és nincs régi ppc386.cfg
# Look through the operating system related FAQs is
+
# Nézd át az operációs rendszerrel összefüggő GY.I.K.-t
  
=== When you a project translate , an error message I get ===
+
=== Amikor egy projektet fordítok, hibaüzenetet kapok ===
==== " Can not find Unit interfaces . " How to solve ?====
+
==== "Cannot find Unit interfaces". Hogyan oldjam meg?====
  
This means that the compiler can not find ' interfaces.ppu 'file ''' or ''' means that it found but is incorrect (old ).
+
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).
  
This unit can be found in the " { LazarusDir } \ LCL \ units \ { TargetCPU } - { TargetOS } \ { LCLWidgetSet } \ interfaces.ppu route . For example : "/ home/username/lazarus/lcl/units/i386-linux/gtk/interfaces.ppu ".
+
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".
  
Check that only there is . If multiple versions there are interfaces.ppu file , you're probably bad options (such as adding a LCL library search path ). Delete the interfaces.ppu all copies of , except for one of the above directory.
+
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.
  
If any other window panel set ( widgets ), have chosen as we the Lazarus made , you must build the LCL is to the window panel set .
+
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.  
  
If it is there , but still this error message get if a different compiler / rtl are using your project to compile , as we in the Lazarus IDE made . One of the following do :
+
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:
* Rebuild the LCL ( , or the whole Lazarus - t) " Environmnent Options " between the selected compiler. You can do this in the "Tools | Build Lazarus "menu item . Before that check the settings in the "Tools | Configure Build Lazarus " clicking .
+
* É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.
* Change the selected compiler the "Environment Options " between the it one with which Lazarus was compiled . Carefully look at the "Environment Options " , so that the correct path is set to " Lazarus Directory "and the " FPC sources directory "box. Check to only one version of be the compiler configuration fpc.cfg file - its place in the directory / etc / Linux / Unix systems or Windows , the of the directory where the FPC compiler is located. Try to run the " fpc -vt bogus 'command to ellenőrizhesd which fpc.cfg is used in the system. Redundant copies may remain when a new version update the compiler and these are the user directory or in the directory can be where the new compiler built. DELETE THEM !
+
* 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!
* You may change the project selected window panel set. An example: the " objectinspector " is the Lazarus part of the default gtk is set to . This translation of certainly causes a " Can not find unit interfaces " message on Windows. The ablakelemek converting "default (Win32 ) "to solve the problem: "Project | Project Options | Compiler Options ... | LCL Widget Type ( various ) ".
+
* 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)".
  
=== When a Delphi project to you want to compile Lazarus fiber, an error message I get ===
+
=== Amikor egy delphi projektet akarok fordítani Lazarus-szal, hibaüzenetet kapok ===
==== at the line : { $ R *. DFM } How can I solve this problem? ====
+
==== at the line :{$R *.DFM} Hogyan oldhatom meg ezt a problémát? ====
  
Lazarus ( or rather, Linux) do not know the sources of data ( resources ) , in the form as Delphi/Win32 use . Therefore, Lazarus another -up method that is roughly equivalent to him. You can use the Delphi ablakelrendezéseket (. dfm ) files with the following steps :
+
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:
  
* Do you need to . dfm files to text version . The D5 and newer versions such made default. If older files there are : { { keypress | Alt | F12 } } to text see then copy /insertion. If the text . dfm file, only copy one . LfM file.
+
*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: {{keypress|Alt|F12}} 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.
* Create a file in the lazres program ( lazarus / tools directory) : lazres formod.lrs formod.lfm
+
*Készíts egy fájlt a lazres programmal (a lazarus/tools könyvtárban található): lazres formod.lrs formod.lfm
* Add the following lines to the " initialization " section :
+
*Add a következő sorokat a "initialization" részhez:
  
      initialization
+
      initialization
      { $ I formod.lrs }
+
      {$I formod.lrs}
  
not all property (Property ) supported by Lazarus , which the . dfm files may occur , and it may crash.
+
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.
  
Edit : the FPC 2.4.0 Since , a Delphi -style data sources are supported , so you have nothing to be changed. <! - Even Lazarus svn Already uses it as default projects . - > Note : I recommend the Lazarus Delphi project converter use of , since there may not be supported properties .
+
Szerk: Az FPC 2.4.0 óta, a Delphi stílusú adatforrások is támogatottak, így már semmit sem kell megváltoztatnod. <!--Even Lazarus svn already uses it as default projects. -->Megjegyzés: még mindig ajánlott a Lazarus Delphi project converter használata, mivel előfordulhatnak nem támogatott tulajdonságok.
  
==== ' Identifier not found LazarusResources ' . ====
+
==== 'Identifier not found LazarusResources'. ====
  
When Lazarus set up a form was , add a few Unit is united uses part of the . However, Delphi Units Lazarus unittá converting it it does not happen. Therefore, you should add the LResources United in the form unitjának uses part of the .
+
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.
  
=== When an object event handler I call , eg . a button on onclick () -jet then the following error message I get : ' ERROR unit not found: stdCtrls ' ===
+
=== 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' ===
  
Check the " Project | Project Inspector " in that the projects ' LCL ' packets based on and to install the FPC source code .
+
Ellenőrizd a "Project|Project Inspector"-ban, hogy a projekted az 'LCL' csomagokon alapul és hogy telepítetted az FPC forráskódjait.
  
Lazarus in the development environment ( IDE ) and the LCL visual components combination of .
+
A Lazarus a fejlesztőkörnyezet (IDE) és az  LCL vizuális komponensek együttese.
Each other , as the IO, the Database , the FCL and RTL the FPC by is provided .
+
Minden egyéb, mint az IO, a Database, az FCL és az RTL az FPC által van biztosítva.
The IDE requires all the source path .
+
Az IDE igényli az összes forráskód útvonalát.
  
The FPC source code path set menu starting from a : Environment | Environment Options | Files | FPC source directory "
+
Az FPC forráskódjainak útvonala beállítható a menüből indulva: "Environment|Environment Options|Files|FPC source directory"
  
=== How can I build a small file with a executable file that is not a separate file ? How can I build a resource ? ===
+
===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?===
  
For example :
+
Például:
 / lazarus / path / tools / lazres sound.lrs sound1.wav sound2.wav ...
+
/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...
Creates the sound.lrs file the sound1.wav and sound2.wav files using .
+
Létrehozza a sound.lrs fájlt a sound1.wav és sound2.wav fájlokat felhasználva.
  
Then paste the code in the form . LRS * after *:
+
Ezután illeszd a kódodba a form .lrs *után*:
  
 ...
+
...
 initialization
+
initialization
 { $ i unit1.lrs } / / this is the main resource file (first)
+
{$i unit1.lrs} // ez a fő erőforrás fájl (első)
 { $ i sound.lrs } / / user defined resource file
+
{$i sound.lrs} // felhasználó által meghatározott erőforrás fájl
 
+
 end .
+
end.
  
Your program so you can use :
+
A programodban így használhatod:
 Sound1AsString : = LazarusResources.Find (' sound1 ') . Value ;
+
Sound1AsString:=LazarusResources.Find('sound1').Value;
  
=== What are the different types of files you the Lazarus are using ? ===
+
=== Mit jelentenek a különböző fájltípusok amiket a Lazarus használ? ===
  
The [[ Lazarus Tutorial # The Lazarus files ]] article in detail , with examples describe the type of file extensions.
+
A [[Lazarus Tutorial#The Lazarus files]] cikk részletesen, példákkal írja le a fájltipus kiterjesztéseket.
This is a summary list:
+
Ez egy összefoglaló lista:
  
; <code> *. lpi < / code >: Lazarus Project Information File ( XML format , includes the project specific settings)
+
; <code>*.lpi</code> : Lazarus Project Információ fájl (XML formátum; tartalmazza a projekt egyedi beállításait)
; <code> *. lpr < / code >: Lazarus Program files ; the main program Pascal source code included in
+
; <code>*.lpr</code> : Lazarus Program fájl; a főprogram Pascal forráskódját tartalmazza
; <code> *. LfM < / code >: Lazarus Form file , information contains a form all the elements of ( unique to the Lazarus used by text format is ; operations Pascal source code written in the appropriate <code> *. pas < / code> file found)
+
; <code>*.lfm</code> : 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ő <code>*.pas</code> fájlban találhatók)
; <code> *. pas < / code > or <code> *. pp < / code >: Pascal source Unit (typically a form to belongs in which the data the corresponding <code> *. LfM < / code> file)
+
; <code>*.pas</code> vagy <code>*.pp</code> : Pascal forráskódú  Unit (tipikusan egy form-hoz tartozik amelynek adatai a megfelelő <code>*.lfm</code> fájlban találhatók)
; <code> *. LRS < / code >: Lazarus Resource File ( resource , this is a generated file , do not be confused with the Windows resource files ).
+
; <code>*.lrs</code> : Lazarus Resource fájl (erőforrás, ez egy generált fájl; nem szabad összetéveszteni a Windows erőforrás fájlokkal).  
: If these files are lazres ( Lazarus / Tools directory) tool to create from the command line started : lazres fajlom.lrs fajlom.lfm
+
: 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
; <code> *. PPU < / code >: Compiled
+
; <code>*.ppu</code> : Lefordított unit
; <code> *. LPK < / code >: Lazarus package ( package ) information file . (XML format , the package specific settings includes )
+
; <code>*.lpk</code> : Lazarus csomag (package) információ fájl. (XML formátum; a csomag egyedi beállításait tartalmazza)
  
=== When a text file declared so : '' var mytext : text ; '', an error message I get : " Unit1.pas ( 32.15 ) Error : Error in type definition ". How can I improve ? ===
+
=== 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?===
  
The TControl class ( class ) has a [[ doc: LCL / controls / tcontrol.text.html | Text] ] , a property (property ). a form belonging to process ( method ) should availability of take precedence over the System units located in [[ doc: rtl / system / text.html | Text] ] model comparison . You can use [[ doc: rtl / system / textfile.html | textfile ]] model , which is an alias the text type for , or the type is set, the type name before can write the unit his name.
+
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.
 var
+
var
   MyTextFile : TextFile ;
+
  MyTextFile: TextFile;
   MyText : System.Text ;
+
  MyText: System.Text;
A similar phenomenon may occur in a text file identifiers, assigning and close the file too. The TForm in '' assign '' and [ [ doc: LCL / forms / tcustomform.close.html | Close ]] procedure ( method ) as well. You can use [[ doc: rtl / objpas / assignfile.html | AssignFile ]] and [ [ doc: rtl / objpas / closefile.html | CloseFile ]] procedures , or insert the '' System '' unit name of the .
+
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.
  
=== an error message I get when a Printer.BeginDoc cent using ===
+
=== Hibaüzenetet kapok amikor a Printer.BeginDoc-ot használom ===
  
the printers Units need to add to the uses section.
+
A Printers unitot hozzá kell adnod a uses részhez.
  
The Printer4Lazarus package need to add your project függősdégeihez ( Requirement ) the IDE menu in starting from a :
+
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 :
+
"Project|Project Inspector|Add|New Requirement|Package Name:"
  
Printer4Lazarus package is not the box, when you open you must install . of the package is part of the Lazarus installation and can be found in this directory :
+
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 Install Directory ] \ components \ printers "
+
"[lazarus installed directory]\components\printers"
  
If the default installation directory you used is in the [ lazarus Install Directory ]
+
Ha az alapértelmezett telepítési könyvtárat használtad akkor a [lazarus installed directory] útvonala:
* Windows: c: \ lazarus
+
*Windows: c:\lazarus  
* Linux : / usr / lib / lazarus
+
*Linux: /usr/lib/lazarus
  
The same solution used when Printer.Printers for reference exception ( Exception ) is formed .
+
Ugyanez a megoldás alkalmazható ha a Printer.Printers-re hivatkozáskor kivétel (exception) keletkezik.
  
=== Why is equal the TForm.ClientWidth / ClientHeight and TForm.Width / Height ===
+
=== Miért egyenlő a TForm.ClientWidth/ClientHeight és a TForm.Width/Height ===
  
The TForm.Width / Height does not include the frame, as it was not possible to retrieve the frame size of each system. a reliable method Without of LCL abnormally mozgathatná or indefinitely átméretezhetné the windows on the screen.
+
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.
  
However, if there will be a reliable procedure for a window and frame size , and status of query the all systems , then it will change . The older LCL form- reason compatibility with in order to maintain the new version of some other process ( method ) as well will be added .
+
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.
  
== Debugger ( Debugger ) ==
+
== Hibakereső (Debugger) ==
  
=== How can I see debugging output? ===
+
=== Hogyan láthatom a hibakeresés kimenetét? ===
  
LCL contains two procedures for LCLProc unit the debug output to writing . These are:
+
Az LCL tartalmaz két eljárást az LCLProc unitban a hibakereső kimenetre történő íráshoz. Ezek a következők:  
* ''' DebugLn : ''' works like writeln , but string parameters.
+
* '''DebugLn:''' úgy működik mint a WriteLn, de csak string paramétert fogad el.
* ''' DbgOut : ''' works such as Write, but string parameters.
+
* '''DbgOut:''' úgy működik mint a Write, de csak string paramétert fogad el.
  
Under normal circumstances, the output stdout is . If is stdout closed ( for example, when the application is { $ AppType Gui } or - WG options has been compiled on Windows) , it will not be writing to the output.
+
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.
  
The debug output file is writable. The LCLProc unit the initialization section of checks the Lazarus.exe command parameters of the '- debug -log = <file> 'to search . If find you can additional debug output the <file> into will be written .
+
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.
  
If not specified the '- debug -log ' command line parameter , an xxx_debuglog named environment variable the existence verify of the operating system , where xxx is the executable name of the without the extension. The Lazarus for it lazarus_debuglog .
+
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.  
If such an environment variable exists, then it is converted file will be used the debug output data written to to save .
+
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.
For example : if you do :
+
Például: ha ezt teszed:
 set lazarus_debuglog = c: \ lazarus \ debug.txt
+
set lazarus_debuglog=c:\lazarus\debug.txt
the debug output c: \ lazarus \ debug.txt file will be written .
+
a hibakeresési kimenet a c:\lazarus\debug.txt fájlba lesz írva.
  
Every application that uses the lclproc units, you can use this option.
+
Minden alkalmazás amely használja az lclproc unitot, használhatja ezt a lehetőséget.
  
; Lazarus Debugging : The most useful method is Windows at the console to use output , this add to the { $ APPTYPE console } directive the lazarus.pp to , then rebuild, the Lazarus- t .
+
;Lazarus hibakeresés: 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.
  
=== How to monitor your properties? (property ) ===
+
=== Hogyan figyelhetem a tulajdonságokat? (property) ===
  
The latest development (2.5.1 ) or the 2.4 version instead.
+
A legutóbbi fejlesztői (2.5.1) vagy a 2.4-es változatot kell használnod.  
  
If the application on - gw ( dwarf debug info ) to compile , then observed the properties.
+
Ha az alkalmazást a -gw (dwarf debug info) használatával fordítod, akkor figyelheted a tulajdonságokat.
  
It should be noted that this is a of the character true that directly variables embody ( the "read " declaration of the class a members show and the is not a function ).
+
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).
  
If the property an operation outcome of returns the is very dangerous their evaluation / monitoring . May be necessary to carry out the operation , and this can sometimes variables the value of change in lead to . Put simply change the your application status of in the debugger , and a further code execution , debuggers or monitoring is invalid findings.
+
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.
  
The facility the processes return value of the monitor ( to the above risks in addition ) , and because of this code call the Debugger out is not yet developed .
+
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.
  
=== Why does not shows the debugger the individual variables / structures (" No such symbol " / " incomplete type " ) ===
+
=== Miért nem mutatja a hibakereső az egyes Változókat/Struktúrákat ("no such symbol"/"incomplete type") ===
  
The following troubleshooting problems: <br>
+
A következő hibakeresési problémák esetén:<br>
- properties (property - k ) <br>
+
- tulajdonságok (property-k)<br>
- array of ... (dynamic arrays ) <br>
+
- array of ... (dinamikus tömbök)<br>
- variables nested procedures <br>
+
- változók beágyazott eljárásokban<br>
- " No such symbol in context "<br>
+
- "no such symbol in context"<br>
- " incomplete type " <br>
+
- "incomplete type"<br>
Read this article : [[ GDB Debugger Tips ] ]'' (in English ) ''
+
olvasd el ezt a cikket: [[GDB Debugger Tips]] ''(angol)''
  
=== How do I use the debugger , packs and FCL components Lazarus VERSION ===
+
=== Hogyan használható a hibakereső, csomagokban található FCL komponenseken Lazarus-szal ===
  
The FCL components and classes by default debugging information without have been compiled with and therefore gdb can not access the methods and properties. The components packages need to be rebuilt of the " gl " option.
+
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.  
  
The following example assumes that is a Linux compilation using the / usr / local / installation path and the FCL -db database administrator package in the which should include debugging information . In the example FCL - piece in , but mind simply any other package is works.
+
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.
  
Before you begin , you have to find the FPC configuration file : / etc / fpc.cfg . Look through the contents and find the the FPC installation path of . Search the fpc.cfg file a line with the early -Fu in :
+
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ó:
  
 -Fu/usr/local/lib/fpc / $ fpcversion / units / $ fpctarget / *
+
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*
  
the Make scripts by compiled United in the INSTALL_PATH / lib / fpc / $ fpcversion / units / $ fpctarget / directory, so have to make sure that the installation path to / usr / local , and must be reported INSTALL_PREFIX as , otherwise the Make translated by Units a location can be placed in where you do not belong or to the Make scripts error due to down also may .
+
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.
  
'' '1 . Step ''' : Open a terminal window <br>
+
'''1. lépés''': Nyisd meg a terminál ablakot<br>
'' '2 . Step ''' cd / user/local/share/src/fpc-2.3.1/fpc/fcl-db / <br>
+
'''2. lépés''': cd /user/local/share/src/fpc-2.3.1/fpc/fcl-db/<br>
'' '3 . Step ''' sudo make clean all install INSTALL_PREFIX = / usr / local OPT =- gl <br>
+
'''3. lépés''': sudo make clean all install INSTALL_PREFIX=/usr/local OPT=-gl<br>
  
+
 
Note that the INSTALL_PREFIX parameter be properly adjusted to the Units proper placement of in order !
+
Megjegyzés: az INSTALL_PREFIX paramétert megfelelően be kell állítani a unitok megfelelő elhelyezése érdekében!
  
In this example, / usr / local the default install path on Linux, but other operating systems may be different .
+
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.
  
 make clean all install INSTALL_PREFIX = / usr / local OPT =- gl
+
make clean all install INSTALL_PREFIX=/usr/local OPT=-gl
  
Finally, any of the FCL unit after recompiling may need to the LCL recompile is the same way.
+
Végül bármelyik FCL unit újrafordítása után szükséges lehet az LCL újrafordítása is ugyanígy.
  
== Contribution / Correction the Lazarus in ==
+
== Közreműködés / Javítás a Lazarus-ban ==
  
=== I made a patch (patch ), which the IDE Messages ( Messages ) window in the Source Editor ( Source Code Editor ) to the bottom attached ===
+
=== 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ő ===
  
These foltozásokat not be used because of the windows you want to join the way only a small part of are designed they . The goal is to complete Recording Management System the preparation and use of . is a complete Recording Management System for IDE all windows to be linked to user-defined way . For example, the message window of the source code editor above or below or ... or anything anywhere. Sample:
+
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:
  
 
<pre>
 
<pre>
 
+-------------------++--+
 
+-------------------++--+
| Menu | | |
+
|menü              || |
+-------------------+| |
+
+-------------------+| |
+--++---------------+| |
+
+--++---------------+| |
| PI | | Source Code | | CE |
+
|PI|| Forráskód    ||CE|
+--+| Editor | | |
+
+--+|   Szerkesztő || |
+--+| | | |
+
+--+|               || |
| |+---------------++--+
+
| |+---------------++--+
| OI |+-------------------+
+
|OI|+-------------------+
| | | Messages |
+
| ||üzenetek          |
 
+--++-------------------+
 
+--++-------------------+
< / pre >
+
</pre>
  
The Recording Management can save the layout and restore to the next boot . <! - Preferably the dock manager can dock in pages too . -> The rögzítéskezelőnek no need the drag and drop method to use .
+
A rögzítéskezelő tudja elmenteni az elrendezést és visszatölteni a következő betöltéskor. <!--Preferably the dock manager can dock in pages too. -->A rögzítéskezelőnek nem szükséges a fogd és vidd módszert használnia.
all tinkering with that Recording Management without , turn up the windows , makes it difficult a Recording Management to develop and is denied .
+
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.
  
A temporary solution you can use this supplement to the IDE : [[ Manual Docker ]]
+
Ideiglenes megoldásként használhatod ezt a kiegészítést az IDE-hez: [[Manual Docker]]
  
=== repaired / improved my Lazaruszon . How do I add the changes to the official lazarus source ? ===
+
=== Javítottam/fejlesztettem a Lazaruszon. Hogyan adhatom hozzá a változtatásokat a hivatalos Lazarus forráskódhoz? ===
  
Make a patch ( patch) and send it to developers. Details can be found here : [[ Creating A Patch] ]. ''( in English) ''
+
Készíts egy foltot (patch) és küldd el a fejlesztőknek. Részletek itt találsz: [[Creating A Patch]]. ''(angolul)''
  
=== How do I become a Lazarus developer , the SVN and the bug (bug -tracker ) Manager ? ===
+
=== Hogyan lehetek Lazarus fejlesztő, az SVN és a hibakövető (bug-tracker) kezelője? ===
  
Above all : learn to Lazarus about , thereby increasing their knowledge and expertise. Start with the [[ Lazarus_Documentation / en | wiki articles ]] read , read the Lazarus source code , take some look at a [ http://www.lazarus.freepascal.org/mantis Lazarus Bug Tracker ] , correct some mistakes , and if you think you're ready, please contact the developers of the [ http://www.mail-archive.com/lazarus @ miraclec.com mailing list ].
+
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 [http://www.lazarus.freepascal.org/mantis Lazarus Bug-Tracker], javíts ki néhány hibát, és ha úgy gondolod készen állsz, vedd fel a kapcsolatot a fejlesztőkkel a [http://www.mail-archive.com/lazarus@miraclec.com levelezőlistán].
  
== Where are the ... DEFINITIONS ==
+
== Hol vannak a ... definiciók ==
  
=== Virtual key constants ===
+
=== Virtuális billentyű konstansok ===
  
The virtual key constants in the [[ doc: LCL / lcltype | LCLType ]] unit are defined . Add <b> uses < / b > section of the LCLtype unit.
+
A virtuális billentyű konstansok az [[doc:lcl/lcltype|LCLType]] unitban vannak definiálva. Add a <b>uses</b> részhez az LCLtype unitot.
  
== The IDE use of ==
+
== Az IDE használata ==
  
=== How do I use the " Code Completion " (" identifier Completion ") option ? ===
+
=== Hogyan használhatom az "azonosító kiegészítés" ("identifier completion") lehetőséget? ===
  
The identifiers in addition to { { keypress | ctrl | spaces } } Press are available. You can set the auto-completion delayed is , from the menu starting : ' Environment | Editor Options | Code Tools | Automatic Features ' .
+
Az azonosítók kiegészítése a {{keypress|ctrl|szóköz}} 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'.
  
 
== Linux ==
 
== Linux ==
  
=== How do I use the debugger the IDE without ? ===
+
=== Hogyan használhatom a hibakeresőt az IDE nélkül? ===
<! -
+
<!--
First of all you need a debugger. gdb is the standard debugger under Linux and
+
First of all you need a debugger. gdb is the standard debugger under linux and
there are Several GUI frontends available. One common frontend is ddd , Which is
+
there are several GUI-frontends available. One common frontend is ddd, which is
part of now common distributions . To compile Lazarus / LCL with debugging information
+
part of most common distributions. To compile lazarus/lcl with debug-information
you Should then use the FOLLOWING commands to start the debug session :
+
you should then use the following commands to start a debug session:
  
  $ Make clean; make OPT =- dDEBUG
+
  $ make clean; make OPT=-dDEBUG
  $ ddd lazarus
+
  $ ddd lazarus
  
you warn however , That ddd Is Not as comfortable as eg The Lazarus debugger.
+
Be warned however, that ddd is not as comfortable as e.g. the Lazarus debugger.
Specially if it comes to view the contents of the variable you have to take into
+
Specially if it comes to view the contents of a variable you have to take into
account That ddd / gdb are case sensitive Having Pascal is case-insensitive .
+
account that ddd/gdb are case sensitive whereas Pascal is case-insensitive.
Therefore you have to type all variable names in uppercase to see Their
+
Therefore you have to type all variable names in uppercase to see their
contents . For more information take a look into the fpc - manuals .
+
contents. For more information take a look into the fpc-manuals.
->
+
-->
=== Can I run the debugger , but ddd can not find the forráskódjaimat , or complain that they have no code . What is this ? ===
+
=== Tudom futtatni a hibakeresőt, de ddd nem találja a forráskódjaimat vagy panaszkodik, hogy nincs bennük kód. Mi ez? ===
<! -
+
<!--
This is the path- related problem with either has gdb or ddd . You Can Avoid this by
+
This is a path-related problem with either gdb or ddd. You can avoid this by
  
* Use the "Change Directory "command from the ddd menu and choose the directory WHERE the sources are located . The drawback of this method Is that you now can not use the source of the program you started with ( eg Lazarus) . Thus it May in neccessary to change the directory multiple times.
+
* Use the "Change directory" command from the ddd menu and choose the directory where the sources are located. The drawback of this method is that you now can't use the source of the program you started with (e.g. lazarus). Thus it may be neccessary to change the directory multiple times.
* In ddd goto [Edit ] [ gdb -settings ] and set the search -path
+
* In ddd goto [Edit] [gdb-settings] and set the search-path
* Create the $ ( HOME) / . gdbinit file like:
+
* Create a $(HOME)/.gdbinit file like:
      directory / your / path / to / lazarus
+
      directory /your/path/to/lazarus
      directory / your / path / to / lazarus / LCL
+
      directory /your/path/to/lazarus/lcl
      directory / your / path / to / lazarus / LCL / include
+
      directory /your/path/to/lazarus/lcl/include
->
+
-->
=== an error message I get the merge during , which says "/ usr / bin / ld can not find- l <valami_lib> " ===
+
=== Hibaüzenetet kapok az összefűzés közben, ami azt mondja "/usr/bin/ld can't find -l<valami_lib>" ===
<! -
+
<!--
; ''' Package Based Distributions ''' : You need to install the package That provides the lib <somelib> . so or lib <somelib> . the files. Dynamic libs under linux have the extension . so , while static libs have the extension. a. On some Linux distro's you have installed the package ( rpm, deb) <packagename> Which provides <some lib> , But you Also need the development package ( rpm, deb) , Normally Called <packagename> - dev, Which contains the. a ( static lib ) and / or the. so ( dynamic lib ).
+
; '''Package Based Distributions''' : You need to install the package that provides the lib<somelib>.so or lib<somelib>.a files. Dynamic libs under linux have the extension .so, while static libs have the extension .a. On some Linux distro's you have installed the package (rpm, deb) <packagename> which provides <some lib>, but you also need the development package (rpm, deb), normally called <packagename>-dev, which contains the .a (static lib) and/or the .so (dynamic lib).  
: Some distributions have commands to find Which package contains a file:
+
: Some distributions have commands to find which package contains a file:
: ''' Mandriva '''
+
: '''Mandriva'''
  
 [ ] $ urpmf lib <somelib> . so
+
[]$ urpmf lib<somelib>.so
  
Will list all packages containing the files named lib <somelib> . so , you'll have to install thos ending in- devel
+
:will list all packages containing the file named lib<somelib>.so, you'll have to install those ending in -devel
  
: ''' Debian '''
+
: '''Debian'''
  
: install the apt -file utility (apt - get install apt -file ), then
+
:install the apt-file utility (apt-get install apt-file) then
  
 [ ] $ apt -file search lib <somelib> . so
+
[]$ apt-file search lib<somelib>.so
  
Will list all packages containing the files named lib <somelib> . so , you'll have to install thos ending in- dev
+
:will list all packages containing the file named lib<somelib>.so, you'll have to install those ending in -dev
  
     
+
   
  
; '' 'Source Based Distributions and Manual Compilation (LFS )''' : Make That there is a lib <somelib> . for in the path, and That it contains the right version. To let the linker find the dynamic library , create a symlink Called lib <some lib> . so to lib <some lib> <version> -x, y.so if Necessary (and / or for static lib , lib <some lib> . the to lib <some lib> <version> - x , y ).
+
; '''Source Based Distributions and Manual Compilation (LFS)''' : Make sure that there is a lib<somelib>.a in the path, and that it contains the right version. To let the linker find the dynamic library, create a symlink called lib<some lib>.so to lib<some lib><version>-x,y.so if necessary (and/or for static lib; lib<some lib>.a to lib<some lib><version>-x,y.a).
  
; ''' FreeBSD ''' : As source based distro 's, and bottom make sure you have -Fl/usr/local/lib in your fpc.cfg and / or Lazarus library path . Keep in Mind That GTK1.2 has " gtk12 "as package name under FreeBSD . ( Same for glib ) NOTE : This has changed as of late . Newest ports have gtk -12 and glib -12 as well . might Stumble on this problem , Since FPC Requires the " -less " ones , You will need to symlink Them like this :
+
; '''FreeBSD''' : As source based distro's, and also make sure you have -Fl/usr/local/lib in your fpc.cfg and/or Lazarus library path. Keep in mind that GTK1.2 has "gtk12" as package name under FreeBSD. (same for glib) NOTE: This has changed as of late. Newest ports have gtk-12 and glib-12 as well. You might stumble on this problem, since FPC requires the "-less" ones, you will need to symlink them like this:
  
 [ ] # cd / usr / local / lib & & ln -s libglib - 12.so libglib12.so
+
[]# cd /usr/local/lib && ln -s libglib-12.so libglib12.so
 [ ] # cd / usr/X11R6/lib & & ln -s libgtk - 12.so libgtk12.so
+
[]# cd /usr/X11R6/lib && ln -s libgtk-12.so libgtk12.so
 [ ] # cd / usr/X11R6/lib & & ln -s libgdk - 12.so libgdk12.so
+
[]# cd /usr/X11R6/lib && ln -s libgdk-12.so libgdk12.so
  
; ''' NetBSD ''' : As source based distro 's, and bottom make sure you have -Fl/usr/pkg/lib in your fpc.cfg and / or Lazarus library path
+
; '''NetBSD''' : As source based distro's, and also make sure you have -Fl/usr/pkg/lib in your fpc.cfg and/or Lazarus library path
->
+
-->
=== How do I convert Kylix 2 projects Lazarus project? ===
+
=== Hogyan alakíthatok át kylix 2 projektet Lazarus projekté? ===
<! -
+
<!--
Nearly the Same way as converting a Kylix project into a Delphi / VCL project .
+
Nearly the same way as converting a Kylix project into a Delphi/VCL project.
  
The LCL ( Lazarus Component Library) Triest to be compatible to Delphi 's VCL .
+
The LCL (Lazarus Component Library) tries to be compatible to Delphi's VCL.
Kylix 's CLX Triest to be QT compatible .
+
Kylix's CLX tries to be QT compatible.
Here are some general hints :
+
Here are some general hints:
  
* Rename all used CLX Q - units like QForms , QControls , QGraphics ... into Their VCL counterparts : Forms , Controls , Graphics , ...
+
* Rename all used CLX Q-units like QForms, QControls, QGraphics, ... into their VCL counterparts: Forms, Controls, Graphics, ...
* Add LResources to the uses section of Every form source
+
* Add LResources to the uses section of every form source
* Rename or copy all . XFM files to. LfM files.
+
* Rename or copy all .xfm files to .lfm files.
* Rename or copy . DPR file to. lpr file .
+
* Rename or copy .dpr file to .lpr file.
* Add " Interfaces "to the uses section in the . lpr file .
+
* Add "Interfaces" to the uses section in the .lpr file.
* Remove { $ R *. res } directive
+
* Remove {$R *.res} directive
* Remove { $ R *. XFM } directive
+
* Remove {$R *.xfm} directive
* Add { $ mode objfpc } { $ H +} or { $ mode delphi } { $ H +} directive to. pas and. lpr files
+
* Add {$mode objfpc}{$H+} or {$mode delphi}{$H+} directive to .pas and .lpr files
* Add an initialization section to the end of Each form source and add an include directive for the. LRS file ( lazarus resource file) :
+
* Add an initialization section to the end of each form source and add an include directive for the .lrs file (lazarus resource file):
  initialization
+
  initialization
    { $ I unit1.lrs }
+
    {$I unit1.lrs}
: The. LRS files can be created via the lazres tool in ( lazarusdir ) / tools / lazres .
+
:The .lrs files can be created via the lazres tool in: (lazarusdir)/tools/lazres.
: For example :. / lazres unit1.lrs unit1.lfm
+
:For example: ./lazres unit1.lrs unit1.lfm
  
* Fix the Differences . The LCL does not yet support Every property of the VCL and the CLX is Not Fully VCL compatible .
+
* Fix the differences. The LCL does not yet support every property of the VCL and the CLX is not fully VCL compatible.
  
* To make it more platform independant , Reduce unit libc ( Which is deprecated ) references and Substitute with native FPC units like baseunix / unix as much as possible . This Will Be Necessary to support Other targets Than Linux/x86 ( including OS X , FreeBSD and Linux/x86_64 )
+
* To make it more platform independant, reduce unit libc (which is deprecated) references and substitute with native FPC units like baseunix/unix as much as possible. This will be necessary to support other targets than linux/x86 (including OS X, FreeBSD and Linux/x86_64)
->
+
-->
=== When Lazarus was translating the compiler can not find a unit. pl . " gtkint.pp ( 17.16 ) Fatal : Can not find unit GLIB " ===
+
=== 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" ===
<! -
+
<!--
1. Check the clean rebuild : do a ' make clean all '
+
1. Check a clean rebuild: do a 'make clean all'
  
2. Check if the compiler has the correct version ( 2.0.4 or higher )
+
2. Check if the compiler has the correct version (2.0.4 or higher)
  
3. Check if the compiler is using the right config file . The normal installation Creates / etc / fpc.cfg . But fpc lower searches for ~ / . ppc386.cfg , ~ / . fpc.cfg , / etc/ppc386.cfg and it uses only the first it Finds .
+
3. Check if the compiler is using the right config file. The normal installation creates /etc/fpc.cfg. But fpc also searches for ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg and it uses only the first it finds.
  
: ''' Hint : ''' You can see Which config file is used with ' ppc386 -vt bogus '
+
:'''Hint:''' You can see which config file is used with 'ppc386 -vt bogus'
: Remove Any ppc386.cfg as it is really obsolete .
+
:Remove any ppc386.cfg as it is really obsolete.
  
4. Check if the config file (/ etc / fpc.cfg ) contains the right paths to your fpc libs . There must be three lines like this :
+
4. Check if the config file (/etc/fpc.cfg) contains the right paths to your fpc libs. There must be three lines like this:
    -Fu/usr/lib/fpc / $ fpcversion / units / $ fpctarget
+
    -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
    -Fu/usr/lib/fpc / $ fpcversion / units / $ fpctarget / rtl
+
    -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
    -Fu/usr/lib/fpc / $ fpcversion / units / $ fpctarget / *
+
    -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
: The first part of THESE paths (/ usr / lib / fpc ) depends on your system . On some systems this can be for example / usr / local / lib / fpc / ... .
+
:The first part of these paths (/usr/lib/fpc) depends on your system. On some systems this can be for example /usr/local/lib/fpc/... .
: ''' Hint : ''' You can see your searchpaths with ' ppc386 -vt bogus '
+
:'''Hint:''' You can see your searchpaths with 'ppc386 -vt bogus'
  
5. Check that the config file (/ etc / fpc.cfg ) does not contain search paths to the LCL source files (. pp . pas ):
+
5. Check that the config file (/etc/fpc.cfg) does not contain search paths to the lcl source files (.pp, .pas):
  forbidden :- Fu ( lazarus_source_directory ) / LCL
+
  forbidden: -Fu(lazarus_source_directory)/lcl
  forbidden :- Fu ( lazarus_source_directory ) / LCL / interfaces / gtk
+
  forbidden: -Fu(lazarus_source_directory)/lcl/interfaces/gtk
: If You Want to enter the LCL for all your fpc projects , make sure That the two paths look like the FOLLOWING and are place after the Above fpc lib paths:
+
:If you want to add the lcl for all your fpc projects, make sure that the two paths look like the following and are placed after the above fpc lib paths:
  -Fu ( lazarus_source_directory ) / LCL / units / $ fpctarget
+
  -Fu(lazarus_source_directory)/lcl/units/$fpctarget
  -Fu ( lazarus_source_directory ) / LCL / units / $ fpctarget / gtk
+
  -Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk
  
6. Check if the missing unit ( glib.ppu ) exists in your fpc lib directory . For example the gtk.ppu can be found in / usr / lib / fpc / $ fpcversion/units/i386-linux/gtk / . If it does NOT EXISTS , the fpc lib is corrupt and Should Be reinstalled .
+
6. Check if the missing unit (glib.ppu) exists in your fpc lib directory. For example the gtk.ppu can be found in /usr/lib/fpc/$fpcversion/units/i386-linux/gtk/. If it does not exists, the fpc lib is corrupt and should be reinstalled.
  
7. Check if the sources are in the NFS mounted directory . In some Cases the NFS updates created files incorrectly . Please, try to move the sources into a non NFS directory and compile there.
+
7. Check if the sources are in a NFS mounted directory. In some cases the NFS updates created files incorrectly. Please, try to move the sources into a non NFS directory and compile there.
  
8. If you are Still Not succeeded try to use samplecfg script as follows :
+
8. If you are still not succeeded try to use samplecfg script as follows:
  
''#'' cd / usr / lib / fpc / '' version ''/
+
''#'' cd /usr/lib/fpc/''version''/
  
''#'' sudo. / samplecfg / usr / lib / fpc / '' \ $ version '' / etc
+
''#'' sudo ./samplecfg /usr/lib/fpc/''\$version'' /etc
  
Note! DO NOT PUT - / - after etc. Because if you do that the system Will create a file - / etc / fpc.cfg / fpc.cfg . In FACT we Want That samplecfg Make the file - / etc / fpc.cfg - not the folder / etc / fpc.cfg .
+
Note! Do not put - / - after etc because if you do that the system will create a file - /etc/fpc.cfg/fpc.cfg. In fact we want that samplecfg make a file - /etc/fpc.cfg - not the folder /etc/fpc.cfg.
->
+
-->
=== the binary version I installed , but a simple project for translating the Lazarus writes: ' Fatal : Can not find unit CONTROLS ' ===
+
===A bináris változatot telepítettem, de egy egyszerű projekt fordításakor a Lazarus ezt írja:: 'Fatal: Can't find unit CONTROLS'===
  
likely to more FPC package use more than I the Lazarus binaries made in . The best solution is to source code download and Lazarus recompile . You can download the latest source code ( snapshot) or you can use the svn system :
+
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:
  
  $ bash
+
  $ bash
  $ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus
+
  $ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus
  $ Cd lazarus
+
  $ cd lazarus
  $ Make clean all
+
  $ make clean all
  
Please check that the Lazarus to is - e given the source directory new path , from the menu starting :
+
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 "
+
"Environment->General Options->Files->Lazarus Directory Top"
  
=== The Lazarus translated , but the concatenation fails with ' libgdk - pixbuf not found ' ===
+
===A Lazarus lefordítható, de az összefűzés leáll ezzel: 'libgdk-pixbuf not found'===
  
Install the gdk - pixbuf library for gtk1.x to :
+
Telepítsd a gdk-pixbuf függvénytárat a gtk1.x-hez:
  
The gdk - pixbuf library can be found at the following locations :
+
A gdk-pixbuf függvénytár megtalálható a következő helyeken:
  
RPMs :
+
RPM csomagok:
http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch =
+
http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=
  
Debian packages:
+
Debian csomagok:
libgdk - pixbuf - dev
+
libgdk-pixbuf-dev
  
Source :
+
Forráskódok:
 
ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/
 
ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/
  
External Links:
+
Külső hivatkozások:
[ http://www.flashpapers.com/ term papers writing service ]
+
[http://www.besttermpaper.com/ termpapers]
[ http://www.besttermpaper.com/ termpapers ]
 
  
''' Ubuntu 8.10 : '''
+
'''Ubuntu 8.10:'''
  
If Lazarus was GTK 2-0 version compiled an error message you will get that the " libgdk - pixbuf2.0 "was not found . Just install the libgtk2.0 - dev package apt with like this:
+
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:
  
 apt - get install libgtk2.0 - dev
+
apt-get install libgtk2.0-dev
  
=== SuSE system, this I get : '/ usr / bin / ld : can not find- lgtk Error : Error while linking ' ===
+
===SuSE rendszeren ezt kapom: '/usr/bin/ld: cannot find -lgtk Error: Error while linking'===
  
Older SuSE versions of (SuSE 11 before ) to install the gtk development libraries to / opt / gnome / lib (or / opt/gnome/lib64 64- bit system ) directory , which is not the standard location the libraries for . Add the directory / etc / fpc.cfg to ( -Fl/opt/gnome/lib ).
+
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).
  
=== The Lazarus crashes ' runtime error 211 ' error after a component I installed ===
+
===A Lazarus összeomlik 'runtime error 211' hibával, miután egy komponenst telepítettem===
  
a component After installing on Lazarus crash with this message:
+
Egy komponens telepítése után a Lazarus összeomlik a következő üzenettel:
 threading Has Been used Before cthreads WAS initialized .
+
Threading has been used before cthreads was initialized.
 Make cthreads one of the first units in your uses clause .
+
Make cthreads one of the first units in your uses clause.
 Runtime error 211 at $ 0066E188
+
Runtime error 211 at $0066E188
How to fix ?
+
Hogyan javítsam?
  
the Fiss installed component fibers ( threads) are working . the FPC * nix systems, is not incorporated into automatically the fibers of the support , but it is needed. This launch of the cthreads unit is made . Every application that the component uses , the main program uses part of should be the cthreads unit. This is from himself the Lazarus is no exception . This in two ways:
+
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:
  
1) Open up the package. The csomagszerkesztőben click the '' Options'' on . A'' Usage '' tab, add for '' custom '' line the '' ' dUseCThreads '' ' switch. Then rebuild the IDE . so the cthreads unit will be used automatically in the IDE under Unix and cthreads will be started.
+
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.
  
2) The package amendment to avoid the FPC compiler command line switch direct use of is required. A click on '' Tools- > Configure "Build Lazarus "'' menu item . In the window that appears, the Lazarus building Options located where the "Options " box, type '' ' Facthreads ''' and click " OK " button. The next step is installing the package . The Lazarus the - Facthreads switch will be recreated in which means that the main program, it will be interpreted as if cthreads unit still he were first the uses part
+
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
  
'' Tip : ''The old ( with no loose ) Lazarus can be found lazarus.old named , in the same directory where the collapsing Lazarus executable is .
+
''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.
  
See also: [[ Multithreaded_Application_Tutorial # Units_needed_for_a_multithreaded_application ] ]'' (in English ) ''
+
Lásd még: [[Multithreaded_Application_Tutorial#Units_needed_for_a_multithreaded_application]] ''(angol)''
  
=== When fibers ( threads) working a program running , an error message I get : " Runtime Error 232 ' ===
+
===Amikor egy szálakkal (threads) dolgozó programot futtatok, hibaüzenetet kapok: 'runtime error 232'===
 
+
The compiler error message is as follows:
+
A fordító hibaüzenete a következő:
 This binary has no thread support compiled in.
+
This binary has no thread support compiled in.
 Recompile the application with the threads driver in the program uses
+
Recompile the application with a thread-driver in the program uses
 clause Before Other unITS using thread .
+
clause before other units using thread.
 Runtime error 232
+
Runtime error 232
''' Solution ''' : Add a cthreads Units first the uses part of the főprogramodban , which is usually one . lpr file .
+
'''Megoldás''': Add a cthreads unitot elsőként a uses részhez a főprogramodban, ami általában egy .lpr fájl.
  
=== Ubuntu Breezy / Mandriva KDE3 using the letters the Lazarus IDE in is too big ===
+
=== Ubuntu Breezy/Mandriva KDE3 használatakor a betűk a Lazarus IDE-ben túl nagyok ===
  
Lazarus the Gtk1.2 from has been translated the Gnome font settings do not affect the program as they the gtk2 - re relate to .
+
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.
Try this:
+
Próbáld meg így:
Create a file. gtkrc.mine name of the user (home) directory ( if not already there) and add
+
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
add these lines:
+
hozzá ezeket a sorokat:
  
 
<pre>
 
<pre>
style "default -text " {
+
style "default-text" {
       fonts = " -*- arial -medium -r -normal - *- 100 -*-*-*-*- ISO8859 -1, \
+
      fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\
                  -*- helvetica -medium -r -normal - *- 100 -*-*-*-*-*-*"
+
                  -*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
 
}
 
}
  
class " GtkWidget "style "default -text "
+
class "GtkWidget" style "default-text"
< / pre >
+
</pre>
  
If this is not enough , try to create one. gtkrc symbolic link is a . gtkrc.mine file shows . This solution worked Xubuntu 7.10, Mandriva 2009.0 KDE3 systems.
+
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.
  
=== How to use a GTK programs different . rc files? ===
+
===Hogyan használhatnak a gtk programjaim különböző .rc fájlokat?===
  
a) Option :
+
a) lehetőség:
rename it the rc file to '' programod.gtkrc '' name and put into the same directory where the executable is .
+
Nevezd át az rc fájlt ''programod.gtkrc'' névre és helyezd át ugyanabba a könyvtárba ahol a futtatható állomány van.
  
b ) Option
+
b) lehetőség:
Use the '' GtkInt '' United and the following function call : '' GTKWidgetSet.SetRCFilename (' kiválasztott_rc_fájl ');''
+
Használd a ''GtkInt'' unitot és a következő függvényhívást: ''GTKWidgetSet.SetRCFilename('kiválasztott_rc_fájl');''  
This is best the '' Application.Initialize '' operation before done the . lpr file '' { $ ifdef LCLGtk } '' directive.
+
Ezt a legjobb az ''Application.Initialize'' művelet előtt megtenni az .lpr fájlban ''{$IFDEF LCLGtk}'' direktívával.
  
c ) Option
+
c) lehetőség:
Use the '' gtk2 '' Units and '' gtk_rc_parse (' kiválasztott_rc_fájl '));'' and '' gtk_rc_reparse_all ; '' function calls .
+
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.
  
=== Ubuntu I use and I can not gtk2 - re compile missing libraries because of ===
+
===Ubuntu-t használok és nem tudok Gtk2-re fordítani, hiányzó függvénytárak miatt===
  
the Ubuntu for trouble that they are not always created the symbolic links even though they take the libraries are installed.
+
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.
  
Before gtk2 - re compile , check that all the missing library exists in the proper symbolic link. You should do:
+
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:
  
 
<pre>
 
<pre>
cd / usr / lib
+
cd /usr/lib
sudo ln -s libgdk - x11- 2.0.so.0 libgtk - x11- 2.0.so
+
sudo ln -s libgdk-x11-2.0.so.0 libgtk-x11-2.0.so
< / pre >
+
</pre>
  
Check that [ something ]. so a symbolic link there is and to the current library pointing .
+
Ellenőrizd, hogy a [valami].so szimbolikus hivatkozás létezik és az aktuális függvénytárra mutat.
  
=== How can I build a program to gtk2 - re ? ===
+
===Hogyan fordíthatok egy programot Gtk2-re?===
  
The GTK2 spending IDE is not yet fully stable, but to compile software gtk2 from the Gtk1 - inch IDE using .
+
A Gtk2-re fordított IDE egyelőre nem teljesen stabil, de fordíthatsz szoftvert Gtk2-re a Gtk1-es IDE használatával.
  
First the LCL recompile necessary to for . The menu, click on "Tools -> Configure Build Lazarus " , and then the LCL at select the "clean & build "in , and anything else " none " . Then click " OK " button.
+
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.
  
The menu, click on " Tools- > Build Lazarus ' point .
+
A menüben kattints a "Tools->Build Lazarus" pontra.
  
Now you can compile your software gtk2 - re if you " Compiler options " between the ablakelemkészletet ( widgets ) , set to .
+
Most már fordíthatod a szoftveredet Gtk2-re ha "Compiler options" között az ablakelemkészletet (widgetset) Gtk2-re állítod.
  
=== This is the message I get: " [ WARNING ] ** multibyte character encodings ( like UTF8 ) are not supported at the moment ."===
+
===Ezt az üzenetet kapom: "[WARNING] ** Multibyte character encodings (like UTF8) are not supported at the moment."===
  
This error does not occur in the 10 535 ( 0.9.21 ) number version after the expenditure.
+
Ez a hiba nem fordul elő a 10535 (0.9.21) számú változat utáni kiadásokban.  
Prior to that as a warning served UTF -8 encoded texts are used.
+
Ezt megelőzően figyelmeztetésként szolgált UTF-8 kódolt szövegek használata esetén.  
  
The internal key management procedures gtk1 for they could not handle the so coded keystrokes , which meant that example, accented characters for , or poorly perceived they are .
+
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.
  
(original text older Lazarus versions ) <br>
+
(eredeti szöveg régebbi Lazarus változatokhoz)<br>
 
<strike>
 
<strike>
This warning means that UTF -8 character encoding using a . If Gtk 1 you use this is a serious problem may and prevent Lazarus or the to applications work properly.
+
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.
  
The solution is to adjust the local character encoding is not utf -8 mode before from the command line you start the program , like this:
+
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:
  
 
<pre>
 
<pre>
export LC_CTYPE = " pt_BR "
+
export LC_CTYPE="pt_BR"
export LANG = " pt_BR "
+
export LANG="pt_BR"
export LANGUAGE = " pt_BR "
+
export LANGUAGE="pt_BR"
. / lazarus
+
./lazarus
< / pre >
+
</pre>
  
The pt_BR place , of course, Thy kingdom ID into . The automatic setup script to create .
+
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 >
+
</strike>
  
 
== Windows ==
 
== Windows ==
  
=== When the ' cycle ' translation I use, this I get : "The Name Specified Is Not Recognized as an internal or external command , operable program or batch file . > & WAS unexpected at this time ' . ===
+
=== 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'. ===
  
The compiler library of has a OS2 script make.cmd name. Different versions of Windows can script understand this , delete , because although this is necessary OS2 - n, but a problem Windows on .
+
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.
  
=== When the ' cycle ' translation I use, this I get : 'make [ 3]: ./ppc1.exe : Command not found ' ===
+
=== Amikor 'cycle' fordítást használom, ezt kapom: 'make[3]: ./ppc1.exe: Command not found' ===
  
Do not know why, make you forget the route. Try the ' cycle ' translation of the base set to run like this:
+
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
+
make cycle BASEDIR=your_fpc_source_dir_herecompiler
  
=== When Lazarus was again I want to paid (make command), I get an error : ===
+
=== Amikor a Lazarus-t újra akarom fordítani (make parancsal), üzenetet kapok:===
==== make.exe : * * * interfaces : No such file or directory ( ENOENT ). Stop.make.exe : * * * [ interfaces_all ] Error 2 ====
+
====make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2 ====
You need to upgrade to the make file.
+
Frissítened kell a make fájlt.
  
==== makefile : 27: *** You need the GNU utils package to use this Makefile . Stop .====
+
====makefile:27: *** You need the GNU utils package to use this Makefile.   Stop.====
  
Make sure that the FPC is not a path you have installed, which the name space also is . The Makefile is not supported.
+
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.
  
=== How do I add my program XP look like Lazarus should have? ===
+
===Hogyan adhatok a programomnak XP kinézetet, mint amilyen a Lazarus-nak is van?===
  
the menu Starting from " Project | Project Options | Use manifest to enables themes " is checked.
+
A menüből indulva: "Project|Project Options|Use manifest to enables themes" legyen bejelölve.
  
=== When I a Lazarus- VERSION made running , the DOS window will start ===
+
===Amikor egy Lazarus-szal készített alkalmazást futtatok, az DOS ablakkal indul===
  
Add the -WG parameter (Windows GUI ), the compiler command line or tick the " Windows GUI " checkbox in the Lazarus IDE translation settings ( from the menu starting " Project | Project Options | Compiler Options | Linking | target OS Specific options | Win32 GUI application " ).
+
Add meg a-WG paramétert (Windows GUI) a fordító parancssorában vagy jelöld be a 'Windows GUI' jelölőnégyzetet a Lazarus IDE fordítói beállításai között (A menüből indulva: "Project|Project Options|Compiler Options|Linking|target OS Specific options|Win32 GUI application").
  
 
== Mac OS X ==
 
== Mac OS X ==
  
=== Why does the translation " unknown section attribute: no_dead_strip ' message? ===
+
=== Miért áll le a fordítás 'unknown section attribute: no_dead_strip' üzenettel?===
  
The 'dead' code removing does not support the assembler and the lacing ( linker ) to Xcode 1.5, (available on Mac OS X 10.3.9 version ). Turn off the following translation options:
+
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 Mac OS X 10.3.9 változatban). Kapcsold ki a következő fordítói beállításokat:
  
* Code > Unit style> Smart linkable (- CX)
+
*Code > Unit style > Smart linkable (-CX)  
* Linking > Link Style> Link Smart (- XX)
+
*Linking > Link Style > Link smart (-XX)
  
== Permits ( Licenses ) ==
+
== Engedélyek (Licencek) ==
  
=== Can I make commercial applications of Lazarus thread? ===
+
=== Készíthetek kereskedelmi alkalmazásokat a Lazarus-szal? ===
  
Yes, the LCL the LGPL permits can be used as an exception , which permits the static concatenation ( linking ) the application's source code the publication of without . The changes and improvements to the LCL code , however, its source code together with extended should be . The Lazarus IDE a GPL license is under . LCL only the source code included in are the ' LCL ' directory , other codes are not be here to placed and thereby disguise .
+
Igen, az LCL az LGPL engedélyei szerint használható egy kivétellel, 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.
  
=== Why do we certain components use limited to in commercial applications ? ===
+
=== Miért van egyes komponensek használata korlátozva kereskedelmi alkalmazásokban? ===
  
The Lazarus contains third -party components . These different licenses may be used under . If you want to use them , you have to look at the licenses package source . Most third -party component of the " components " directory.
+
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ó.
  
=== How do I know whether a component the LCL is part of ? ===
+
=== Honnan tudhatom meg, hogy egy komponens az LCL része-e? ===
  
Each LCL unit of the " LCL ' directory. LCL forming part of Units list can be found the http://lazarus-ccr.sourceforge.net/docs/lcl/ at . If code a are not listed Units using , probably a component using that is not part of the LCL 's .
+
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.
  
=== Can I trade add a Lazarus to ? ===
+
=== Készíthetek kereskedelmi bővítményt a Lazarus-hoz? ===
  
Yes, it is IDEIntf called part of the IDE has the LGPL licenses for the use of the above- mentioned exceptions ,
+
Igen, az IDEIntf nevű része az IDE-nek az LGPL engedélyei szerint használható az előbb említett kivétellel,  
so the that shared data structures does not require that the bővítményedet or of the design package you the GPL placed under . Optional any engedélyezésű Add ; do not want to limit the choice. In short : non- GPL compatible extensions is also permitted .
+
í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.  
It should be noted , that not allowed a has compiled Lazarus distribution of statically built-in, non - GPL compliant extensions , however, think that this is not a serious limitation , because the Lazarus easy to recompile .
+
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ó.
  
== the Forum Using ==
+
== A fórum használata ==
  
=== How can I ask questions correct in the forum ? ===
+
=== Miként tehetek fel kérdéseket helyesen a fórumban? ===
  
First and foremost, I always need to know what Lazarus, FPC , Ablakelemkészlet ( widgets ), CPU and Operating System ( defined )) version using ! Do not just say that the " latest ", always a clear version give it . Daily code event (development version) the review number of ( revision number ) and / or date is important.
+
Első és legfontosabb: Mindig tudnod kell melyik Lazarus, FPC, Ablakelemké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ű verziószámot adj meg. Napi kód esetén (fejlesztői változat) a felülvizsgálat száma (revision number) és/vagy dátuma is fontos.
  
When we are interested , that something why do does not work always enclose a brief source code, which demonstrates the problem and often a picture will be useful. images upload to the http://imageshack.us/ and the like sites , then add your link .
+
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 és gyakran egy kép is hasznos lehet. Képeket feltölthetsz a http://imageshack.us/ és hasonló oldalakra, aztán add meg a linket.
  
Try general overview, and possibly more a more detailed description give of the problem.
+
Próbálj meg általános áttekintést és lehetőleg minél részletesebb leírást is adni a problémáról.
  
How can you ask questions the smart way , here you can read about : http://catb.org/esr/faqs/smart-questions.html
+
Arról, hogy miként tehetsz fel kérdéseket intelligens módon, itt olvashatsz: http://catb.org/esr/faqs/smart-questions.html
  
== Contributors & Comments ==
+
== Közreműködők és megjegyzések ==
  
This site is the English page translation , which epikwiki [ http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq version] was drawn.
+
Ez az oldal az angol nyelvű oldal fordítása, mely az epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq változat] alapján készült.
  
<!--[[ Category : Lazarus / en ]]-->
+
<!--[[Category:Lazarus/hu]]-->

Revision as of 13:35, 29 September 2010

العربية (ar) Deutsch (de) English (en) español (es) français (fr) magyar (hu) italiano (it) 日本語 (ja) 한국어 (ko) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)


Lazarus GY.I.K.

folyamatban...



Általános

Miért olyan nagyok a létrehozott binárisok?

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.

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.

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

Csak írd a parancssorba: "strip --strip-all <a_futtatható_fájl_neve_útvonallal>".

Ha még kisebbre akarod a programod méretét, kipróbálhatod az UPX programot. Az UPX egy nagyon jó tömörítő kifejezetten futtatható állományok tömörítéséhez. It includes no memory overhead due to in-place decompression. Nagyon gyorsan tömöríti ki az állományokat (~10 MB/másodperc egy Pentium 133 gépen).

Az UPX hazsnálatához írd a parancssorba: "upx <a_futtatható_fájl_neve_útvonallal>".

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:

  • ~ 700kb Linux-on
  • ~ 420kb Windows-on

Részletesebb választ az UPX használatának esetleges hátrányairól is, itt olvashatsz: Size Matters (angolul).

Fontos megjegyezni, hogy a lazarus 'hello world' példaprogram már eleve tartalmaz nagyon sok fontos összetevőt. Tartalmazza:

  • XML kezelő függvénytár
  • Képkezelő függvénytár png, xpm, bmp és ico fájlokhoz
  • Majdnem minden widget-et a LCL-ből (Lazarus Component Library)
  • Az teljes Free Pascal Runtime Library-t

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.

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.

Lazarus vs cpp hu.png


Gyors útmutató a Lazarus/FPC alkalmazások méretének csökkentéséhez (tesztelve a Lazarus 0.9.26 változatával)

  • 1. "Project|Project Options|Compiler Options|Code|Smart Linkable (-CX)" -> Bejelölve
  • 2. "Project|Project Options|Compiler Options|Linking|Debugging|" minden törölve kivéve a "Strip Symbols From Executable (-Xs)" -> Bejelölve
  • 3. "Project|Project Options|Compiler Options|Linking|Link Style|Link Smart (-XX)" -> Bejelölve

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)

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

Méretek változása egy üres alkalmazás esetén, beállítások és operációs rendszerek függvényében

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.

    Default Lazarus     LCL without debug informations
Ubuntu 64 bits / Lazarus 64 bits
Default application     13,4  Mb     7,5 Mb / 8
Optimized compiler     4,4 Mb     2,70 Mb (0.29svn FPC2.4 2,5)
   
Ubuntu 32 bits / Lazarus 32 bits
Default application     19,6  Mb     5,7 Mb
Optimized compiler     2,9 Mb     1,6 Mb
   
Windows XP 32 bits / Lazarus 32 bits
Default application     11,8 Mb     2,14 Mb
Optimized compiler     1,62 Mb     1,50 Mb
   
Windows Seven 64 bits / Lazarus 64 bits
Default application     12,3  Mb     3,20 Mb
Optimized compiler     2,14 Mb     2,16 Mb

Miért lassú az alkalmazások építése Windows-on?

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.

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

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)

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.

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.

Melyikre van szükségem: ppc386.cfg vagy fpc.cfg?

Csak az fpc.cfg kell neked. Így a fordító tudja hogy hol vannak a függvénytárak.

Hogyan fordítsam a lazarus-t?

Valahogy így:

$ cd lazarus
$ make clean all

Hogyan fordíthatok más projekteket, amik az LCL-en az alapulnak?

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:

  # searchpath for other toolkits (Linux)
  -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/{Készleted}
  # searchpath for other toolkits (Windows)
 -Fu/{LazarusKönyvtárad}/components/units/{Készleted}
Ahol {a Készleted} a következők lehetnek: gtk2, gnome, qt vagy win32. Ez után futtasd ezt a parancsot:
ppc386 projekted.pp

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

Melyik FPC változatra van szükség?

A Lazarus 0.9.28 legalább az FPC 2.4 változatát igényli.

Nem tudom fordítani a Lazarus-t

  1. Ellenőrizd, hogy a fordító megfelő változatát használod
  2. Ellenőrizd, hogy a függvénytárak (fpc) ugyanehhez a változathoz valók
  3. Ellenőrizd, hogy a fordító telepítési útvonalának nevében vannak-e szóközök. Ne legyenek!
  4. Ellenőrizd, hogy van-e fpc.cfg fájl és nincs régi ppc386.cfg
  5. Nézd át az operációs rendszerrel összefüggő GY.I.K.-t

Amikor egy projektet fordítok, hibaüzenetet kapok

"Cannot find Unit interfaces". Hogyan oldjam meg?

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

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

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.

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.

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:

  • É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.
  • 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!
  • 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)".

Amikor egy delphi projektet akarok fordítani Lazarus-szal, hibaüzenetet kapok

at the line :{$R *.DFM} Hogyan oldhatom meg ezt a problémát?

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:

  • 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: Alt+F12 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.
  • Készíts egy fájlt a lazres programmal (a lazarus/tools könyvtárban található): lazres formod.lrs formod.lfm
  • Add a következő sorokat a "initialization" részhez:
     initialization
     {$I formod.lrs}

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.

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.

'Identifier not found LazarusResources'.

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.

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'

Ellenőrizd a "Project|Project Inspector"-ban, hogy a projekted az 'LCL' csomagokon alapul és hogy telepítetted az FPC forráskódjait.

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.

Az FPC forráskódjainak útvonala beállítható a menüből indulva: "Environment|Environment Options|Files|FPC source directory"

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?

Például:

/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...

Létrehozza a sound.lrs fájlt a sound1.wav és sound2.wav fájlokat felhasználva.

Ezután illeszd a kódodba a form .lrs *után*:

...
initialization
{$i unit1.lrs} // ez a fő erőforrás fájl (első)
{$i sound.lrs} // felhasználó által meghatározott erőforrás fájl

end.

A programodban így használhatod:

Sound1AsString:=LazarusResources.Find('sound1').Value;

Mit jelentenek a különböző fájltípusok amiket a Lazarus használ?

A Lazarus Tutorial#The Lazarus files cikk részletesen, példákkal írja le a fájltipus kiterjesztéseket. Ez egy összefoglaló lista:

*.lpi
Lazarus Project Információ fájl (XML formátum; tartalmazza a projekt egyedi beállításait)
*.lpr
Lazarus Program fájl; a főprogram Pascal forráskódját tartalmazza
*.lfm
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)
*.pas vagy *.pp
Pascal forráskódú Unit (tipikusan egy form-hoz tartozik amelynek adatai a megfelelő *.lfm fájlban találhatók)
*.lrs
Lazarus Resource fájl (erőforrás, ez egy generált fájl; nem szabad összetéveszteni a Windows erőforrás fájlokkal).
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
*.ppu
Lefordított unit
*.lpk
Lazarus csomag (package) információ fájl. (XML formátum; a csomag egyedi beállításait tartalmazza)

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?

A TControl osztály (class) rendelkezik egy 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ó Text típushoz képest. Használhatod a 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.

var
  MyTextFile: TextFile;
  MyText: System.Text;

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 Close eljárással (method) is. Használhatod az AssignFile és CloseFile eljárásokat vagy beszúrhatod a System unit nevét.

Hibaüzenetet kapok amikor a Printer.BeginDoc-ot használom

A Printers unitot hozzá kell adnod a uses részhez.

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

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"

Ha az alapértelmezett telepítési könyvtárat használtad akkor a [lazarus installed directory] útvonala:

  • Windows: c:\lazarus
  • Linux: /usr/lib/lazarus

Ugyanez a megoldás alkalmazható ha a Printer.Printers-re hivatkozáskor kivétel (exception) keletkezik.

Miért egyenlő a TForm.ClientWidth/ClientHeight és a TForm.Width/Height

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.

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.

Hibakereső (Debugger)

Hogyan láthatom a hibakeresés kimenetét?

Az LCL tartalmaz két eljárást az LCLProc unitban a hibakereső kimenetre történő íráshoz. Ezek a következők:

  • DebugLn: úgy működik mint a WriteLn, de csak string paramétert fogad el.
  • DbgOut: úgy működik mint a Write, de csak string paramétert fogad el.

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.

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.

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:

set lazarus_debuglog=c:\lazarus\debug.txt

a hibakeresési kimenet a c:\lazarus\debug.txt fájlba lesz írva.

Minden alkalmazás amely használja az lclproc unitot, használhatja ezt a lehetőséget.

Lazarus hibakeresés
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.

Hogyan figyelhetem a tulajdonságokat? (property)

A legutóbbi fejlesztői (2.5.1) vagy a 2.4-es változatot kell használnod.

Ha az alkalmazást a -gw (dwarf debug info) használatával fordítod, akkor figyelheted a tulajdonságokat.

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

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.

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.

Miért nem mutatja a hibakereső az egyes Változókat/Struktúrákat ("no such symbol"/"incomplete type")

A következő hibakeresési problémák esetén:
- tulajdonságok (property-k)
- array of ... (dinamikus tömbök)
- változók beágyazott eljárásokban
- "no such symbol in context"
- "incomplete type"
olvasd el ezt a cikket: GDB Debugger Tips (angol)

Hogyan használható a hibakereső, csomagokban található FCL komponenseken Lazarus-szal

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.

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.

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

-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*

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.

1. lépés: Nyisd meg a terminál ablakot
2. lépés: cd /user/local/share/src/fpc-2.3.1/fpc/fcl-db/
3. lépés: sudo make clean all install INSTALL_PREFIX=/usr/local OPT=-gl

Megjegyzés: az INSTALL_PREFIX paramétert megfelelően be kell állítani a unitok megfelelő elhelyezése érdekében!

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.

make clean all install INSTALL_PREFIX=/usr/local OPT=-gl

Végül bármelyik FCL unit újrafordítása után szükséges lehet az LCL újrafordítása is ugyanígy.

Közreműködés / Javítás a Lazarus-ban

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ő

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:

+-------------------++--+
|menü               ||  |
+-------------------+|  |
+--++---------------+|  |
|PI|| Forráskód     ||CE|
+--+|    Szerkesztő ||  |
+--+|               ||  |
|  |+---------------++--+
|OI|+-------------------+
|  ||üzenetek           |
+--++-------------------+

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.

Ideiglenes megoldásként használhatod ezt a kiegészítést az IDE-hez: Manual Docker

Javítottam/fejlesztettem a Lazaruszon. Hogyan adhatom hozzá a változtatásokat a hivatalos Lazarus forráskódhoz?

Készíts egy foltot (patch) és küldd el a fejlesztőknek. Részletek itt találsz: Creating A Patch. (angolul)

Hogyan lehetek Lazarus fejlesztő, az SVN és a hibakövető (bug-tracker) kezelője?

Mindenek előtt: tanulj a Lazarus-ról, ezzel növelve a tudásod és a hozzáértésed. Kezdd a wiki cikkek olvasásával, olvasd át a Lazarus forráskódját, vess néhány pillantást a Lazarus Bug-Tracker, 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.

Hol vannak a ... definiciók

Virtuális billentyű konstansok

A virtuális billentyű konstansok az LCLType unitban vannak definiálva. Add a uses részhez az LCLtype unitot.

Az IDE használata

Hogyan használhatom az "azonosító kiegészítés" ("identifier completion") lehetőséget?

Az azonosítók kiegészítése a ctrl+szóköz 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'.

Linux

Hogyan használhatom a hibakeresőt az IDE nélkül?

Tudom futtatni a hibakeresőt, de ddd nem találja a forráskódjaimat vagy panaszkodik, hogy nincs bennük kód. Mi ez?

Hibaüzenetet kapok az összefűzés közben, ami azt mondja "/usr/bin/ld can't find -l<valami_lib>"

Hogyan alakíthatok át kylix 2 projektet Lazarus projekté?

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"

A bináris változatot telepítettem, de egy egyszerű projekt fordításakor a Lazarus ezt írja:: 'Fatal: Can't find unit CONTROLS'

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:

 $ bash
 $ svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus
 $ cd lazarus
 $ make clean all

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"

A Lazarus lefordítható, de az összefűzés leáll ezzel: 'libgdk-pixbuf not found'

Telepítsd a gdk-pixbuf függvénytárat a gtk1.x-hez:

A gdk-pixbuf függvénytár megtalálható a következő helyeken:

RPM csomagok: http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=

Debian csomagok: libgdk-pixbuf-dev

Forráskódok: ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/

Külső hivatkozások: termpapers

Ubuntu 8.10:

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:

apt-get install libgtk2.0-dev

SuSE rendszeren ezt kapom: '/usr/bin/ld: cannot find -lgtk Error: Error while linking'

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

A Lazarus összeomlik 'runtime error 211' hibával, miután egy komponenst telepítettem

Egy komponens telepítése után a Lazarus összeomlik a következő üzenettel:

Threading has been used before cthreads was initialized.
Make cthreads one of the first units in your uses clause.
Runtime error 211 at $0066E188

Hogyan javítsam?

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:

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.

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

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.

Lásd még: Multithreaded_Application_Tutorial#Units_needed_for_a_multithreaded_application (angol)

Amikor egy szálakkal (threads) dolgozó programot futtatok, hibaüzenetet kapok: 'runtime error 232'

A fordító hibaüzenete a következő:

This binary has no thread support compiled in.
Recompile the application with a thread-driver in the program uses
clause before other units using thread.
Runtime error 232

Megoldás: Add a cthreads unitot elsőként a uses részhez a főprogramodban, ami általában egy .lpr fájl.

Ubuntu Breezy/Mandriva KDE3 használatakor a betűk a Lazarus IDE-ben túl nagyok

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:

style "default-text" {
       fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\
                  -*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
}

class "GtkWidget" style "default-text"

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.

Hogyan használhatnak a gtk programjaim különböző .rc fájlokat?

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.

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.

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.

Ubuntu-t használok és nem tudok Gtk2-re fordítani, hiányzó függvénytárak miatt

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.

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:

cd /usr/lib
sudo ln -s libgdk-x11-2.0.so.0 libgtk-x11-2.0.so

Ellenőrizd, hogy a [valami].so szimbolikus hivatkozás létezik és az aktuális függvénytárra mutat.

Hogyan fordíthatok egy programot Gtk2-re?

A Gtk2-re fordított IDE egyelőre nem teljesen stabil, de fordíthatsz szoftvert Gtk2-re a Gtk1-es IDE használatával.

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.

A menüben kattints a "Tools->Build Lazarus" pontra.

Most már fordíthatod a szoftveredet Gtk2-re ha "Compiler options" között az ablakelemkészletet (widgetset) Gtk2-re állítod.

Ezt az üzenetet kapom: "[WARNING] ** Multibyte character encodings (like UTF8) are not supported at the moment."

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.

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.

(eredeti szöveg régebbi Lazarus változatokhoz)
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.

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:

export LC_CTYPE="pt_BR"
export LANG="pt_BR"
export LANGUAGE="pt_BR"
./lazarus

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.

Windows

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

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.

Amikor 'cycle' fordítást használom, ezt kapom: 'make[3]: ./ppc1.exe: Command not found'

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

Amikor a Lazarus-t újra akarom fordítani (make parancsal), üzenetet kapok:

make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2

Frissítened kell a make fájlt.

makefile:27: *** You need the GNU utils package to use this Makefile. Stop.

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.

Hogyan adhatok a programomnak XP kinézetet, mint amilyen a Lazarus-nak is van?

A menüből indulva: "Project|Project Options|Use manifest to enables themes" legyen bejelölve.

Amikor egy Lazarus-szal készített alkalmazást futtatok, az DOS ablakkal indul

Add meg a-WG paramétert (Windows GUI) a fordító parancssorában vagy jelöld be a 'Windows GUI' jelölőnégyzetet a Lazarus IDE fordítói beállításai között (A menüből indulva: "Project|Project Options|Compiler Options|Linking|target OS Specific options|Win32 GUI application").

Mac OS X

Miért áll le a fordítás 'unknown section attribute: no_dead_strip' üzenettel?

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 Mac OS X 10.3.9 változatban). Kapcsold ki a következő fordítói beállításokat:

  • Code > Unit style > Smart linkable (-CX)
  • Linking > Link Style > Link smart (-XX)

Engedélyek (Licencek)

Készíthetek kereskedelmi alkalmazásokat a Lazarus-szal?

Igen, az LCL az LGPL engedélyei szerint használható egy kivétellel, 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.

Miért van egyes komponensek használata korlátozva kereskedelmi alkalmazásokban?

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

Honnan tudhatom meg, hogy egy komponens az LCL része-e?

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.

Készíthetek kereskedelmi bővítményt a Lazarus-hoz?

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

A fórum használata

Miként tehetek fel kérdéseket helyesen a fórumban?

Első és legfontosabb: Mindig tudnod kell melyik Lazarus, FPC, Ablakelemké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ű verziószámot adj meg. Napi kód esetén (fejlesztői változat) a felülvizsgálat száma (revision number) és/vagy dátuma is fontos.

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 és gyakran egy kép is hasznos lehet. Képeket feltölthetsz a http://imageshack.us/ és hasonló oldalakra, aztán add meg a linket.

Próbálj meg általános áttekintést és lehetőleg minél részletesebb leírást is adni a problémáról.

Arról, hogy miként tehetsz fel kérdéseket intelligens módon, itt olvashatsz: http://catb.org/esr/faqs/smart-questions.html

Közreműködők és megjegyzések

Ez az oldal az angol nyelvű oldal fordítása, mely az epikwiki változat alapján készült.