Difference between revisions of "Lazarus Faq/hu"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed broken page links)
 
(28 intermediate revisions by 5 users not shown)
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 a Lazarus? ===
The binaries are large because they debug information contain , which gdb (GNU Debugger ) is necessary to use .
+
A Lazarus egy kereszt-platformos integrált fejlesztői környezet (IDE), melynek segítségével grafikus felületű (GUI) és parancssoros Object [[Pascal]] programok készíthetők, és amely a futtatható állományok elkészítéséhez a Free Pascal fordítót használja. Jelmondata ''írd meg egyszer, fordítsd le bárhol'': a program forráskódja lefordítható egy másik operációs rendszeren futó Lazarus-szal (vagy keresztfordítóval) és az így létrehozott állomány futtatható lesz azon a rendszeren.
  
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 .
+
Részletekért lásd: [[Overview_of_Free_Pascal_and_Lazarus/hu | A Lazarus és a Free Pascal áttekintése]]
  
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 \).
+
===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.
  
Just type the command " strip - strip -all <a_futtatható_fájl_neve_útvonallal> ".
+
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.
  
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 .
+
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\).
It includes no memory overhead due to in-place decompression .
 
Very quickly compress the files (~ 10 MB / sec in a Pentium 133 machine).
 
  
The UPX hazsnálatához enter the command : " upx <a_futtatható_fájl_neve_útvonallal> ".
+
Csak írd a parancssorba: "strip --strip-all <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 :
+
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.
* ~ 700KB on Linux
+
Nem foglal feleslegesen memóriát a helyben történő kitömörítés alatt.  
* ~ 420kb on Windows
+
Nagyon gyorsan tömöríti ki az állományokat (~10 MB/másodperc egy Pentium 133 gépen).
  
A more detailed response to the UPX of using potential drawbacks also can be found here : [ [Size Matters ]]<!-- Size Problems -> ''( in English) .''
+
Az UPX hazsnálatához írd a parancssorba: "upx <a_futtatható_fájl_neve_útvonallal>".
  
It is important to note that Lazarus ' hello world ' example program already contains very many important component. Includes :
+
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
  
* XML handling library
+
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)''.
* Graphics library, png, xpm , bmp and ico files
 
* Almost every widget - et the LCL out of ( Lazarus Component Library)
 
* The total Free Pascal Runtime Library is
 
  
Therefore it is very big, but it almost everything contains what a real world made and a major application may require.
+
Fontos megjegyezni, hogy a lazarus 'hello world' példaprogram már eleve tartalmaz nagyon sok fontos összetevőt. Tartalmazza:
  
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 .
+
* 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
  
[[ Image : Lazarus_vs_cpp_hu.png ]]
+
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.
  
''' Quick guide to the Lazarus / FPC applications, reducing the size of ''' ''( tested with Lazarus 0.9.26 version of ) ''
+
[[Image:Lazarus_vs_cpp_hu.png]]
  
* 1 "Project | Project Options | Compiler Options | Code | Smart Linkable (- CX) "-> True
 
* 2 "Project | Project Options | Compiler Options | Linking | Debugging | " all deleted except the " Strip Symbols From Executable (- Xs ) "- > True
 
* 3 "Project | Project Options | Compiler Options | Linking | Link Style | Link Smart (- XX) "-> True
 
  
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 )
+
'''Gyors útmutató a Lazarus/FPC alkalmazások méretének csökkentéséhez''' ''(tesztelve a Lazarus 0.9.26 változatával)''
  
* 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 ).
+
* 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
  
''' Dimensions change in of a blank applications , settings and operating systems function '''
+
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)
  
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 .
+
* 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).
  
<table WIDTH=642 BORDER=0 CELLPADDING=1 CELLSPACING=0>
+
'''Méretek változása egy üres alkalmazás esetén, beállítások és operációs rendszerek függvényében'''
<TR Valign=top>
 
<TD WIDTH=263> < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> Default Lazarus < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> LCL Without debug informations < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> <U> Ubuntu 64 bits / Lazarus 64 bits < / U > < / TD >
 
<TD COLSPAN=4 WIDTH=372> < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Default < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 13.4 Mb < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 7,5 Mb / 8 < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Optimized compiler < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 4.4 MB < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 2.70 Mb ( 0.29svn FPC2.4 2.5) < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> < / TD >
 
<TD COLSPAN=4 WIDTH=372> < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> <U> Ubuntu 32 bits / Lazarus 32 bits < / U > < / TD >
 
<TD COLSPAN=4 WIDTH=372> < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Default < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 19.6 Mb < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 5.7 MB < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Optimized compiler < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 2.9 MB < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 1,6 Mb < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> < / TD >
 
<TD COLSPAN=4 WIDTH=372> < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> <U> Windows XP 32 bits / Lazarus 32 bits < / U > < / TD >
 
<TD COLSPAN=4 WIDTH=372> < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Default < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 11.8 Mb < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 2.14 Mb < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Optimized compiler < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 1.62 Mb < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 1.50 Mb < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> < / TD >
 
<TD COLSPAN=4 WIDTH=372> < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> <U> Windows Seven 64 bits / Lazarus 64 bits < / U > < / TD >
 
<TD COLSPAN=4 WIDTH=372> < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Default < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 12.3 Mb < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 3.20 Mb < / TD >
 
< / TR >
 
<TR Valign=top>
 
<TD WIDTH=263> Optimized compiler < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=111> 2.14 Mb < / TD >
 
<TD WIDTH=14> < / TD >
 
<TD WIDTH=220> 2.16 Mb < / TD >
 
< / TR >
 
< / TABLE >
 
  
=== Why is slow the applications build on Windows ? ===
+
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.
  
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.
+
<TABLE WIDTH=642 BORDER=0 CELLPADDING=1 CELLSPACING=0>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263></TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>Default Lazarus</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>LCL without debug informations</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263><U>Ubuntu 64 bits / Lazarus 64 bits</U></TD>
 +
<TD COLSPAN=4 WIDTH=372></TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Default application</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>13,4&nbsp; Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>7,5 Mb / 8</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Optimized compiler</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>4,4 Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>2,70 Mb (0.29svn FPC2.4 2,5)</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>&nbsp; &nbsp;</TD>
 +
<TD COLSPAN=4 WIDTH=372></TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263><U>Ubuntu 32 bits / Lazarus 32 bits</U></TD>
 +
<TD COLSPAN=4 WIDTH=372></TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Default application</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>19,6&nbsp; Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>5,7 Mb</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Optimized compiler</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>2,9 Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>1,6 Mb</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>&nbsp; &nbsp;</TD>
 +
<TD COLSPAN=4 WIDTH=372></TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263><U>Windows XP 32 bits / Lazarus 32 bits</U></TD>
 +
<TD COLSPAN=4 WIDTH=372></TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Default application</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>11,8 Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>2,14 Mb</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Optimized compiler</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>1,62 Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>1,50 Mb</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>&nbsp; &nbsp;</TD>
 +
<TD COLSPAN=4 WIDTH=372></TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263><U>Windows Seven 64 bits / Lazarus 64 bits</U></TD>
 +
<TD COLSPAN=4 WIDTH=372></TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Default application</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>12,3&nbsp; Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>3,20 Mb</TD>
 +
</TR>
 +
<TR VALIGN=TOP>
 +
<TD WIDTH=263>Optimized compiler</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=111>2,14 Mb</TD>
 +
<TD WIDTH=14>&nbsp; &nbsp;</TD>
 +
<TD WIDTH=220>2,16 Mb</TD>
 +
</TR>
 +
</TABLE>
  
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 .
+
=== Hiba: 'Fatal: Circular unit reference between a and b' ===
  
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) ''
+
Ez egy gyakori dolog, ami az új felhasználókkal történhet, amikor két form-ot készít, melyekből egymás tulajdonságait akarja elérni. A fenti hiba az interface részben a uses használatakor keletkezik, ezért a hivatkozást át kell tenni az implementation részbe. Példa:
  
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 .
+
Ez hibát okoz:
 +
  unit a;
 +
 
 +
  interface
 +
 
 +
  uses b;
 +
 
 +
  implementation
 +
 
 +
  end.
 +
  ...
 +
  unit b;
 +
 
 +
  interface
 +
 
 +
  uses a;
 +
 
 +
  implementation
 +
 
 +
  end.
 +
Ez viszont nem:
 +
  unit a;
 +
 
 +
  interface
 +
 
 +
  implementation
 +
 
 +
  uses b;
 +
 
 +
  end.
 +
  ...
 +
  unit b;
 +
 
 +
  interface
 +
 
 +
  implementation
 +
 
 +
  uses a;
 +
 
 +
  end.
  
'' '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 .
+
=== Miért lassú az alkalmazások építése Windows-on? ===
  
=== Which one do I need : ppc386.cfg or fpc.cfg ? ===
+
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.
  
Only fpc.cfg be you. Thus, the compiler knows the location of the libraries .
+
Á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ó.
  
=== How compile to lazarus - t ? ===
+
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)''
  
Like this:
+
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.
 $ Cd lazarus
 
 $ Make clean all
 
  
=== How can I build other projects , which LCL - en the are based on ? ===
+
'''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.
  
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 .
+
=== Melyikre van szükségem: ppc386.cfg vagy fpc.cfg? ===
If the LCL application of the IDE and the lazbuild without want to prepare , add following lines to the '' fpc.cfg '' file :
 
  
   # SearchPath for Other Toolkits (Linux )
+
Csak az fpc.cfg kell neked. Így a fordító tudja hogy hol vannak a függvénytárak.
   -Fu/usr/lib/fpc / $ fpcversion /units / $ fpctarget / { Stocks }
 
  
   # SearchPath for Other Toolkits ( Windows)
+
=== Hogyan fordítsam a lazarus-t? ===
  Fu / { LazarusKönyvtárad } / components / units / { Stocks }
 
  
: Where { the Pools } include: '' gtk2 '' ,'' gnome '' ,'' qt '' or '' win32 '' . After this, run this command:
+
Valahogy így:
:: ppc386 projekted.pp
+
$ cd lazarus
 +
$ make clean all
  
'' '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 ] ] ' .
+
=== Hogyan fordíthatok más projekteket, amik az LCL-en az alapulnak? ===
  
=== Which FPC version do I need? ===
+
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:
  
Lazarus 0.9.28 at least of the FPC 2.4 version requires .
+
  # searchpath for other toolkits (Linux)
 +
  -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/{Készleted}
  
=== I can not pay the Lazarus- t ===
+
  # searchpath for other toolkits (Windows)
 +
  -Fu/{LazarusKönyvtárad}/components/units/{Készleted}
  
# Make sure the compiler as with the version use
+
:Ahol {a Készleted} a következők lehetnek: ''gtk2'', ''gnome'', ''qt'' vagy ''win32''. Ez után futtasd ezt a parancsot:
# Check that the libraries ( FPC) do the same to to the version
+
::ppc386 projekted.pp
# Check that the compiler installation path name if there are spaces . Do not be !
 
# Make sure there is fpc.cfg file and there is no old ppc386.cfg
 
# Look through the operating system related FAQs is
 
  
=== When you a project translate , an error message I get ===
+
'''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]]'.
==== " Can not find Unit interfaces . " How to solve ?====
 
  
This means that the compiler can not find ' interfaces.ppu 'file ''' or ''' means that it found but is incorrect (old ).
+
=== Melyik FPC változatra van szükség? ===
  
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 ".
+
A Lazarus 0.9.28 legalább az FPC 2.4 változatát igényli.
  
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.
+
=== Nem tudom fordítani a Lazarus-t ===
  
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 .
+
# Ellenőrizd, hogy a fordító megfelő változatát használod
 +
# Ellenőrizd, hogy a függvénytárak (fpc) ugyanehhez a változathoz valók
 +
# Ellenőrizd, hogy a fordító telepítési útvonalának nevében vannak-e szóközök. Ne legyenek!
 +
# Ellenőrizd, hogy van-e fpc.cfg fájl és nincs régi ppc386.cfg
 +
# Nézd át az operációs rendszerrel összefüggő GY.I.K.-t
  
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 :
+
=== Amikor egy projektet fordítok, hibaüzenetet kapok ===
* 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 .
+
==== "Cannot find Unit interfaces". Hogyan oldjam meg?====
* 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 !
 
* 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 ) ".
 
  
=== When a Delphi project to you want to compile Lazarus fiber, an error message I get ===
+
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).
==== at the line : { $ R *. DFM } How can I solve this problem? ====
 
  
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 :
+
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".
  
* 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.
+
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.
* Create a file in the lazres program ( lazarus / tools directory) : lazres formod.lrs formod.lfm
 
* Add the following lines to the " initialization " section :
 
  
      initialization
+
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.  
      { $ I formod.lrs }
 
  
not all property (Property ) supported by Lazarus , which the . dfm files may occur , and it may crash.
+
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)".
  
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 .
+
=== 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? ====
  
==== ' Identifier not found LazarusResources ' . ====
+
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:
  
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 .
+
*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.
 +
*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:
  
=== 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 ' ===
+
      initialization
 +
      {$I formod.lrs}
  
Check the " Project | Project Inspector " in that the projects ' LCL ' packets based on and to install the FPC source code .
+
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.
  
Lazarus in the development environment ( IDE ) and the LCL visual components combination of .
+
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.
Each other , as the IO, the Database , the FCL and RTL the FPC by is provided .
 
The IDE requires all the source path .
 
  
The FPC source code path set menu starting from a : Environment | Environment Options | Files | FPC source directory "
+
==== 'Identifier not found LazarusResources'. ====
  
=== How can I build a small file with a executable file that is not a separate file ? How can I build a resource ? ===
+
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.
  
For example :
+
=== 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' ===
 / lazarus / path / tools / lazres sound.lrs sound1.wav sound2.wav ...
 
Creates the sound.lrs file the sound1.wav and sound2.wav files using .
 
  
Then paste the code in the form . LRS * after *:
+
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.
 initialization
+
Minden egyéb, mint az IO, a Database, az FCL és az RTL az FPC által van biztosítva.
 { $ i unit1.lrs } / / this is the main resource file (first)
+
Az IDE igényli az összes forráskód útvonalát.
 { $ i sound.lrs } / / user defined resource file
 
 
 
 end .
 
  
Your program so you can use :
+
Az FPC forráskódjainak útvonala beállítható a menüből indulva: "Environment|Environment Options|Files|FPC source directory"
 Sound1AsString : = LazarusResources.Find (' sound1 ') . Value ;
 
  
=== What are the different types of files you the Lazarus are using ? ===
+
===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?===
  
The [[ Lazarus Tutorial # The Lazarus files ]] article in detail , with examples describe the type of file extensions.
+
Például:
This is a summary list:
+
/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.
  
; <code> *. lpi < / code >: Lazarus Project Information File ( XML format , includes the project specific settings)
+
Ezután illeszd a kódodba a form .lrs *után*:
; <code> *. lpr < / code >: Lazarus Program files ; the main program Pascal source code included in
 
; <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> *. 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> *. LRS < / code >: Lazarus Resource File ( resource , this is a generated file , do not be confused with the Windows resource files ).
 
: If these files are lazres ( Lazarus / Tools directory) tool to create from the command line started : lazres fajlom.lrs fajlom.lfm
 
; <code> *. PPU < / code >: Compiled
 
; <code> *. LPK < / code >: Lazarus package ( package ) information file . (XML format , the package specific settings includes )
 
  
=== 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 ? ===
+
...
 +
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.
  
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 programodban így használhatod:
 var
+
Sound1AsString:=LazarusResources.Find('sound1').Value;
   MyTextFile : TextFile ;
 
   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 .
 
  
=== an error message I get when a Printer.BeginDoc cent using ===
+
=== Mit jelentenek a különböző fájltípusok amiket a Lazarus használ? ===
  
the printers Units need to add to the uses section.
+
A [[Lazarus Tutorial#The Lazarus files]] cikk részletesen, példákkal írja le a fájltipus kiterjesztéseket.
 +
Ez egy összefoglaló lista:
  
The Printer4Lazarus package need to add your project függősdégeihez ( Requirement ) the IDE menu in starting from a :
+
; <code>*.lpi</code> : Lazarus Project Információ fájl (XML formátum; tartalmazza a projekt egyedi beállításait)
"Project | Project Inspector | Add | New Requirement | Package Name :
+
; <code>*.lpr</code> : Lazarus Program fájl; a főprogram Pascal forráskódját tartalmazza
 +
; <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> 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 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
 +
; <code>*.ppu</code> : Lefordított unit
 +
; <code>*.lpk</code> : Lazarus csomag (package) információ fájl. (XML formátum; a csomag egyedi beállításait tartalmazza)
  
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 :
+
=== 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?===
" [ Lazarus Install Directory ] \ components \ printers "
 
  
If the default installation directory you used is in the [ lazarus Install Directory ]
+
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.
* Windows: c: \ lazarus
+
var
* Linux : / usr / lib / lazarus
+
  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 [[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.
  
The same solution used when Printer.Printers for reference exception ( Exception ) is formed .
+
=== Hibaüzenetet kapok amikor a Printer.BeginDoc-ot használom ===
  
=== Why is equal the TForm.ClientWidth / ClientHeight and TForm.Width / Height ===
+
A Printers unitot hozzá kell adnod a uses részhez.
  
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 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:"
  
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 .
+
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"
  
== Debugger ( Debugger ) ==
+
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
  
=== How can I see debugging output? ===
+
Ugyanez a megoldás alkalmazható ha a Printer.Printers-re hivatkozáskor kivétel (exception) keletkezik.
  
LCL contains two procedures for LCLProc unit the debug output to writing . These are:
+
=== Miért egyenlő a TForm.ClientWidth/ClientHeight és a TForm.Width/Height ===
* ''' DebugLn : ''' works like writeln , but string parameters.
 
* ''' DbgOut : ''' works such as Write, but string parameters.
 
  
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.
+
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.
  
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 .
+
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.
  
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 .
+
== Hibakereső (Debugger) ==
If such an environment variable exists, then it is converted file will be used the debug output data written to to save .
 
For example : if you do :
 
 set lazarus_debuglog = c: \ lazarus \ debug.txt
 
the debug output c: \ lazarus \ debug.txt file will be written .
 
  
Every application that uses the lclproc units, you can use this option.
+
=== Hogyan láthatom a hibakeresés kimenetét? ===
  
; 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 .
+
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.
  
=== How to monitor your properties? (property ) ===
+
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 latest development (2.5.1 ) or the 2.4 version instead.
+
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 the application on - gw ( dwarf debug info ) to compile , then observed the properties.
+
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.
  
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 ).
+
Minden alkalmazás amely használja az lclproc unitot, használhatja ezt a lehetőséget.
  
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.
+
;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.
  
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 .
+
=== Hogyan figyelhetem a tulajdonságokat? (property) ===
  
=== Why does not shows the debugger the individual variables / structures (" No such symbol " / " incomplete type " ) ===
+
A legutóbbi fejlesztői (2.5.1) vagy a 2.4-es változatot kell használnod.
  
The following troubleshooting problems: <br>
+
Ha az alkalmazást a -gw (dwarf debug info) használatával fordítod, akkor figyelheted a tulajdonságokat.
- properties (property - k ) <br>
 
- array of ... (dynamic arrays ) <br>
 
- variables nested procedures <br>
 
- " No such symbol in context "<br>
 
- " incomplete type " <br>
 
Read this article : [[ GDB Debugger Tips ] ]'' (in English ) ''
 
  
=== How do I use the debugger , packs and FCL components Lazarus VERSION ===
+
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).
  
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.
+
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 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 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.
  
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 :
+
=== Miért nem mutatja a hibakereső az egyes Változókat/Struktúrákat ("no such symbol"/"incomplete type") ===
  
 -Fu/usr/local/lib/fpc / $ fpcversion / units / $ fpctarget / *
+
A következő hibakeresési problémák esetén:<br>
 +
- tulajdonságok (property-k)<br>
 +
- array of ... (dinamikus tömbök)<br>
 +
- változók beágyazott eljárásokban<br>
 +
- "no such symbol in context"<br>
 +
- "incomplete type"<br>
 +
olvasd el ezt a cikket: [[GDB Debugger Tips]] ''(angol)''
  
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 .
+
=== Hogyan használható a hibakereső, csomagokban található FCL komponenseken Lazarus-szal ===
  
'' '1 . Step ''' : Open a terminal window <br>
+
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.  
'' '2 . Step ''' 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>
 
  
 
Note that the INSTALL_PREFIX parameter be properly adjusted to the Units proper placement of in order !
 
  
In this example, / usr / local the default install path on Linux, but other operating systems may be different .
+
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.
  
 make clean all install INSTALL_PREFIX = / usr / local OPT =- gl
+
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ó:
  
Finally, any of the FCL unit after recompiling may need to the LCL recompile is the same way.
+
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*
  
== Contribution / Correction the Lazarus in ==
+
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.
  
=== I made a patch (patch ), which the IDE Messages ( Messages ) window in the Source Editor ( Source Code Editor ) to the bottom attached ===
+
'''1. lépés''': Nyisd meg a terminál ablakot<br>
 +
'''2. lépés''': cd /user/local/share/src/fpc-2.3.1/fpc/fcl-db/<br>
 +
'''3. lépés''': sudo make clean all install INSTALL_PREFIX=/usr/local OPT=-gl<br>
 +
 
 +
Megjegyzés: az INSTALL_PREFIX paramétert megfelelően be kell állítani a unitok megfelelő elhelyezése érdekében!
  
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:
+
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.
 +
 
 +
=== Gondok a GDB használatával macOS rendszeren ===
 +
 
 +
[[GDB_Debugger_Tips#macOS | Olvasd el a hibakereső tippeket Mac rendszerhez]] (angol)
 +
 
 +
== 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:
  
 
<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
+
Mindenek előtt egy hibakeresőre lesz szükséged. Linux-on a szabványos hibakereső a gdb, melyhez több grafikus felületű kezelőprogram is készült. Egy gyakran használt ilyen program a ddd, mely a legtöbb Linux disztrinúciónak része. A lazarus/lcl hibakeresési információkkal történő fordításához és a hibakeresés indításához a következőwith parancsokat kell kiadni:
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
+
  $ make clean; make OPT=-dDEBUG
you Should then use the FOLLOWING commands to start the debug session :
+
  $ ddd lazarus
 +
 
 +
Legyél figyelmes, mivel a ddd nem teljesen úgy működik mint a Lazarus hibakaresője.
 +
Ha egy változó tartalmát kell megjeleníteni ügyelned kell arra, hogy a ddd/gdb megkülönbözteti a kis és nagy betűket, miközben a Pascal nem teszi ezt.
 +
E miatt az összes változó nevét nagy betűkkel kell írnod, hogy láthasd a tartalmukat. További információkat az FPC dokumentációjában találsz.
 +
 
 +
=== Tudom futtatni a hibakeresőt, de ddd nem találja a forráskódjaimat vagy panaszkodik, hogy nincs bennük kód. Mi ez? ===
 +
 
 +
Ez az útvonalakkal kapcsolatos hiba a gdb és a ddd esetében is. Így kerülheted el:
 +
 
 +
* Használt a "Change directory" (könyvtár váltása) parancsot a ddd menüjéből és válaszd a könyvtárat ahol a forráskódok találhatók. E módszer hátránya hogy nem tudod használni a teljes forráskódot az így indított programhoz (pl.: Lazarus). Ezért több alkalommal is szükség lehet könyvtárváltásra.
 +
* A ddd menüjében kattints az [Edit] [gdb-settings] lehetőségre és állítsd be a keresési útvonalat
 +
* Hozd létre a $(HOME)/.gdbinit fájlt a következőképpen:
 +
      directory /utvonal/lazarus
 +
      directory /utvonal/lazarus/lcl
 +
      directory /utvonal/lazarus/lcl/include
 +
 
 +
=== Hibaüzenetet kapok az összefűzés közben, ami azt mondja "/usr/bin/ld can't find -l<valami_lib>" ===
 +
 
 +
; '''Csomag alapú összeállítások''' : Telepítened kell azt a csomagot, amelyik tartalmazza a lib<valami_lib>.so vagy lib<valami_lib>.a fájlokat. A dinamikus függvénytárak névkiterjesztése linux-on .so, a statikus függvénytáraké pedig .a. Néhány Linux összeállításban telepítve van az adott (rpm, deb) csomag amely tartalmazza a <valami_lib> állományt, de ilyenkor is telepítened kell a fejlesztői (rpm, deb) csomagokat, amelyek neve általában <csomagnév>-dev, amiben megtalálható a függvénytár .a (statikus) és/vagy .so (dinamikus) változata.
 +
: Egyes összeállításokban van parancs amellyel meg lehet keresni, hogy melyik csomag tartalmaz egy adott fájlt:
 +
: '''Mandriva'''
  
  $ Make clean; make OPT =- dDEBUG
+
[]$ urpmf lib<valami_lib>.so
  $ ddd lazarus
 
  
you warn however , That ddd Is Not as comfortable as eg The Lazarus debugger.
+
:listát készít az összes csomagról amely tartalmazza a lib<valami_lib>.so fájlt, ezek közül az egyik -devel végződésűt kell telepítened.
Specially if it comes to view the contents of the variable you have to take into
 
account That ddd / gdb are case sensitive Having Pascal is case-insensitive .
 
Therefore you have to type all variable names in uppercase to see Their
 
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 ? ===
 
<! -
 
This is the path- related problem with either has 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.
+
: '''Debian'''
* In ddd goto [Edit ] [ gdb -settings ] and set the search -path
 
* Create the $ ( HOME) / . gdbinit file like:
 
      directory / your / path / to / lazarus
 
      directory / your / path / to / lazarus / LCL
 
      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> " ===
 
<! -
 
; ''' 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 ).
 
: Some distributions have commands to find Which package contains a file:
 
: ''' Mandriva '''
 
  
 [ ] $ urpmf lib <somelib> . so
+
:telepítsd az apt-file eszközt (apt-get install apt-file) majd
  
Will list all packages containing the files named lib <somelib> . so , you'll have to install thos ending in- devel
+
[]$ apt-file search lib<valami_lib>.so
  
: ''' Debian '''
+
:listát készít az összes csomagról amely tartalmazza a lib<valami_lib>.so fájlt, ezek közül az egyik -dev végződésűt kell telepítened.
  
: install the apt -file utility (apt - get install apt -file ), then
+
'''SuSE'''
  
 [ ] $ apt -file search lib <somelib> . so
+
A SuSE a gtk fejlesztői függvénytárakat a /opt/gnome/lib könyvtárba telepíti (vagy a /opt/gnome/lib64 könyvtárba 64 bites rendszeren), ami nem a szokásos helye a függvénytáraknak. Egyszerűen add ezt az útvonalat a /etc/fpc.cfg fájlhoz (így: -Fl/opt/gnome/lib).
 +
   
 +
<!--
 +
; '''Forrás alapú összeállítások és manuális fordítás (LFS)''' : Ellenmőrizd hogy a keresési útvonalakon (path) megtalálható-e a lib<valami_lib>.a, és hogy annak változata megfelelő-e! 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).
  
Will list all packages containing the files named lib <somelib> . so , you'll have to install thos ending in- dev
+
; '''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/X11R6/lib && ln -s libgtk-12.so libgtk12.so
 +
[]# cd /usr/X11R6/lib && ln -s libgdk-12.so libgdk12.so
  
; '' '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 ).
+
; '''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
 +
-->
  
; ''' 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 :
+
=== Hogyan alakíthatok át kylix 2 projektet Lazarus projekté? ===
 +
<!--
 +
Nearly the same way as converting a Kylix project into a Delphi/VCL project.
  
 [ ] # cd / usr / local / lib & & ln -s libglib - 12.so libglib12.so
+
The LCL (Lazarus Component Library) tries to be compatible to Delphi's VCL.
 [ ] # cd / usr/X11R6/lib & & ln -s libgtk - 12.so libgtk12.so
+
Kylix's CLX tries to be QT compatible.
 [ ] # cd / usr/X11R6/lib & & ln -s libgdk - 12.so libgdk12.so
+
Here are some general hints:
  
; ''' 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
+
* 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
=== How do I convert Kylix 2 projects Lazarus project? ===
+
* Rename or copy all .xfm files to .lfm files.
<! -
+
* Rename or copy .dpr file to .lpr file.
Nearly the Same way as converting a Kylix project into a Delphi / VCL project .
+
* Add "Interfaces" to the uses section in the .lpr file.
 +
* Remove {$R *.res} directive
 +
* Remove {$R *.xfm} directive
 +
* 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):
 +
  initialization
 +
    {$I unit1.lrs}
 +
:The .lrs files can be created via the lazres tool in: (lazarusdir)/tools/lazres.
 +
:For example: ./lazres unit1.lrs unit1.lfm
  
The LCL ( Lazarus Component Library) Triest to be compatible to Delphi 's VCL .
+
* Fix the differences. The LCL does not yet support every property of the VCL and the CLX is not fully VCL compatible.
Kylix 's CLX Triest to be QT compatible .
 
Here are some general hints :
 
  
* Rename all used CLX Q - units like QForms , QControls , QGraphics ... into Their VCL counterparts : Forms , Controls , Graphics , ...
+
* 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 macOS, FreeBSD and Linux/x86_64)
* Add LResources to the uses section of Every form source
+
-->
* Rename or copy all . XFM files to. LfM files.
+
=== 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" ===
* Rename or copy . DPR file to. lpr file .
 
* Add " Interfaces "to the uses section in the . lpr file .
 
* Remove { $ R *. res } directive
 
* Remove { $ R *. XFM } directive
 
* 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) :
 
  initialization
 
    { $ I unit1.lrs }
 
: The. LRS files can be created via the lazres tool in ( lazarusdir ) / tools / lazres .
 
: 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 .
+
1. Ellenőrizd egy tiszta fordítással is, így: 'make clean all'
  
* 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 )
+
2. Ellenőrizd, hogy a fordító megfelelő változatát használod (2.0.4 vagy újabb)
->
 
=== When Lazarus was translating the compiler can not find a unit. pl . " gtkint.pp ( 17.16 ) Fatal : Can not find unit GLIB " ===
 
<! -
 
1. Check the clean rebuild : do a ' make clean all '
 
  
2. Check if the compiler has the correct version ( 2.0.4 or higher )
+
3. Ellenőrizd, hogy a fordító a megfelelő beállítási fájlt használja-e. A normál telepítés létrehozza a /etc/fpc.cfg fájlt, de az FPC keresni fogja a ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg fájlokat is és csak azt használja amelyiket előbb találja meg.
  
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 .
+
:'''Tipp:''' Megtudhatod, hogy melyik beállítási fájl van használatban a következő paranccsal: 'ppc386 -vt bogus'
 +
:Törölj minden ppc386.cfg ha már nincs rá szükséged.
  
: ''' Hint : ''' You can see Which config file is used with ' ppc386 -vt bogus '
+
4. Ellenőrizd, hogy a beállítási fájl (/etc/fpc.cfg) a megfelelő útvonalakat tartalmazza. Három, ezekhez sornak kell a fájlban:
: Remove Any ppc386.cfg as it is really obsolete .
+
    -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
 +
    -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
 +
    -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
 +
:Az útvonalak első része (/usr/lib/fpc) a rendszeredtől függ. Egyes rendszereken például /usr/local/lib/fpc/... .
 +
:'''Tipp:''' A keresési útvonalakat is megjelenítheted a következő parancsal: 'ppc386 -vt bogus'
  
4. Check if the config file (/ etc / fpc.cfg ) contains the right paths to your fpc libs . There must be three lines like this :
+
5. Ellenőrizd, hogy a beállítási fájl (/etc/fpc.cfg) nem az LCL forráskódokra (.pp, .pas) mutató útvonalakat tartalmaz:
    -Fu/usr/lib/fpc / $ fpcversion / units / $ fpctarget
+
  nem jó: -Fu(lazarus_source_directory)/lcl
    -Fu/usr/lib/fpc / $ fpcversion / units / $ fpctarget / rtl
+
  nem jó: -Fu(lazarus_source_directory)/lcl/interfaces/gtk
    -Fu/usr/lib/fpc / $ fpcversion / units / $ fpctarget / *
+
:Ha az LCL-t minden FPC projektedhez hozzá akarod adni, ellenőrizd hogy a két útvonal úgy néz ki mint a következők és fenti FPC lib útvonak után vannak elhelyezve:
: 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 / ... .
+
  -Fu(lazarus_source_directory)/lcl/units/$fpctarget
: ''' Hint : ''' You can see your searchpaths with ' ppc386 -vt bogus '
+
  -Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk
  
5. Check that the config file (/ etc / fpc.cfg ) does not contain search paths to the LCL source files (. pp . pas ):
+
6. Ellenőrizd, hogy a hiányzó unit (glib.ppu) megtalálható az fpc lib könyvtárban. Például a gtk.ppu megtalálható a /usr/lib/fpc/$fpcversion/units/i386-linux/gtk/ könyvtárban. Ha nem létezik akkor az fpc lib sérült és újra kell telepíteni.
  forbidden :- Fu ( lazarus_source_directory ) / LCL
 
  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:
 
  -Fu ( lazarus_source_directory ) / LCL / units / $ fpctarget
 
  -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 .
+
7. Ellenőrizd, hogy a fájlok egy csatolt NFS könyvtárban vannak-e. Néhány esetben az NFS frissítések helytelenül hozhatnak létre fájlokat. Próbáld meg áthelyezni a forráskódokat egy nem NFS könyvtárba és ott fordrítani.
  
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.
+
8. Ha még mindig nem sikerült próbáld használni a samplecfg szkriptet a következő módon:
  
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
+
Figyelem! Ne írj / jelet az etc után, mert ha így teszel a rendszer a /etc/fpc.cfg/fpc.cfg fájlt hozza létre. Valójában pedig azt akarjuk, hogy a samplecfg a egy fájlt hozzon létre /etc/fpc.cfg néven és ne a /etc/fpc.cfg könyvtárat.
  
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 .
+
===A bináris változatot telepítettem, de egy egyszerű projekt fordításakor a Lazarus ezt írja:: 'Fatal: Can't find unit CONTROLS'===
->
 
=== the binary version I installed , but a simple project for translating the Lazarus writes: ' Fatal : Can not 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.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'. ===
 +
 
 +
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?===
  
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 menüből indulva: "Project|Project Options|Use manifest to enables themes" legyen bejelölve.
  
=== When the ' cycle ' translation I use, this I get : 'make [ 3]: ./ppc1.exe : Command not found ' ===
+
===Amikor egy Lazarus-szal készített alkalmazást futtatok, az DOS ablakkal indul===
  
Do not know why, make you forget the route. Try the ' cycle ' translation of the base set to run like this:
+
Add meg a -WG paramétert (Windows GUI) a fordító parancssorában vagy jelöld be a 'Win32 GUI alkalmazás' jelölőnégyzetet a Lazarus IDE fordítói beállításai között, a menüből indulva: "Projekt / Projekt beállításai / Fordító beállításai / Beállítás és cél / Cél-függő beállítások / Win32 GUI alkalmazás (-WG)".
Make cycle BASEDIR = your_fpc_source_dir_herecompiler
 
  
=== When Lazarus was again I want to paid (make command), I get an error : ===
+
== macOS ==
==== make.exe : * * * interfaces : No such file or directory ( ENOENT ). Stop.make.exe : * * * [ interfaces_all ] Error 2 ====
 
You need to upgrade to the make file.
 
  
==== makefile : 27: *** You need the GNU utils package to use this Makefile . Stop .====
+
=== Miért áll le a fordítás 'unknown section attribute: no_dead_strip' üzenettel?===
  
Make sure that the FPC is not a path you have installed, which the name space also is . The Makefile is not supported.
+
A 'halott' kódok kiszedését nem támogatja az assembler és az összefűző (linker) az Xcode 1.5 előtt (elérhető a Panther 10.3.9 változatban). Kapcsold ki a következő fordítói beállításokat:
  
=== How do I add my program XP look like Lazarus should have? ===
+
*Code > Unit style > Smart linkable (-CX)
 +
*Linking > Link Style > Link smart (-XX)
  
the menu Starting from " Project | Project Options | Use manifest to enables themes " is checked.
+
=== Hibakeresés ===
  
=== When I a Lazarus- VERSION made running , the DOS window will start ===
+
[[GDB_Debugger_Tips#macOS | Olvasd el a hibakereső tippeket Mac rendszerhez]] (angol)
  
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 " ).
+
== Engedélyek (Licencek) ==
  
== Mac OS X ==
+
=== Készíthetek kereskedelmi alkalmazásokat a Lazarus-szal? ===
  
=== Why does the translation " unknown section attribute: no_dead_strip ' message? ===
+
Igen, az LCL az LGPL engedélyei szerint használható [[FPC_modified_LGPL|egy olyan kivétellel/kiegészítéssel]], amely megengedi a statikus összefűzést (linkelést) az alkalmazásod forráskódjának közreadása nélkül. A változtatásokat és fejlesztéseket az LCL kódjában azonban annak forráskódjával együtt terjeszteni kell. A Lazarus IDE a GPL licenc hatálya alatt áll. Az LCL csak azokat a forráskódokat tartalmazza melyek az 'lcl' könyvtárban találhatók, egyéb kódokat nem szabad ide elhelyezni és ezzel álcázni.
  
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:
+
=== Miért van egyes komponensek használata korlátozva kereskedelmi alkalmazásokban? ===
  
* Code > Unit style> Smart linkable (- CX)
+
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ó.
* Linking > Link Style> Link Smart (- XX)
 
  
== Permits ( Licenses ) ==
+
=== Honnan tudhatom meg, hogy egy komponens az LCL része-e? ===
  
=== Can I make commercial applications of Lazarus thread? ===
+
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.
  
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 .
+
=== Készíthetek kereskedelmi bővítményt a Lazarus-hoz? ===
  
=== Why do we certain components use limited to in commercial applications ? ===
+
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ó.
  
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 fórum használata ==
  
=== How do I know whether a component the LCL is part of ? ===
+
=== Miként tehetek fel kérdéseket helyesen a fórumban? ===
  
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 .
+
Első és legfontosabb: '''Mindig említsd meg melyik Lazarus, Free Pascal, Vezérlőkészlet (widgetset), CPU és Operációs Rendszer (pontosan meghatározott) változatot használod!''' Nem elég annyi hogy a "legfrissebb", mindig egyértelmű változatszámot adj meg. Napi kód (fejlesztői változat) esetén a felülvizsgálat száma (revision number) és/vagy dátuma is fontos.
  
=== Can I trade add a Lazarus to ? ===
+
Amikor arról érdeklődsz, hogy valami miért nem működik '''mindig mellékelj egy rövid forráskódot, ami bemutatja a problémát'''. A forráskódot a [code] és [/code] címkékkel fogd közre (vagy használd a kód beszúrására használatos gombot a fórum eszköztárán). Teljes programokat (forráskód) is mellékelhetsz ''zip''-be csomagolva, ehhez jól használható a Lazarus "Projekt / Projekt közzététele ..." menüpontja.
  
Yes, it is IDEIntf called part of the IDE has the LGPL licenses for the use of the above- mentioned exceptions ,
+
Ha hibajelzést kapsz a kódoddal kapcsolatban '''mindig írd meg a hibaüzenetet'''. A fordító, a hibakereső vagy a programod által jelzett hiba egyszerű másolása a legtöbb esetben elegendő lehet. Ha a hibajelzés a programod futása közben keletkezik használd a -gl (sorszámok megjelenítése futási hibák esetén) kapcsolót és ne használj "inline" kódot a fordításkor, így megfelelő információk készülhetnek a visszakövetéshez.
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 .
 
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 .
 
  
== the Forum Using ==
+
Gyakran egy kép is hasznos lehet. Képeket feltölthetsz a http://imageshack.us/ és hasonló oldalakra, aztán add meg a linket.
  
=== How can I ask questions correct in the forum ? ===
+
Próbálj meg általános áttekintést adni a feladatról ('''mi a megvalósítandó cél''') és lehetőleg minél részletesebb leírást a problémáról ('''milyen módon próbálod megvalósítani a célt'''). Gyakran van sokkal egyszerűbb módja a dolgok véghezvitelének, melyről esetleg nem tudsz.
  
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.
+
Végül, de nem utolsó sorban, győződj meg róla, hogy minden vonatkozó dokumentációt megkerestél és el is olvastál (pl. [[FPC_documentation/hu | FPC dokumentáció]] és a Lazarus wiki, lásd pl. [[Lazarus_Documentation/hu | Lazarus dokumentáció]].
 +
Továbbá [http://lazarus.freepascal.org/index.php?action=search kereshetsz a fórumon] is válaszokat: mások talán már találkoztak ugyanazzal a problémával és megoldásaik is lehetnek. Ha látható, hogy már próbáltál megoldást találni az emberek szívesebben segítenek.
  
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 .
+
Arról, hogy miként tehetsz fel kérdéseket okosan, itt olvashatsz: [http://esr.fsf.hu/smart-questions_hu.html Hogyan kérdezzünk okosan: http://esr.fsf.hu/smart-questions_hu.html]
  
Try general overview, and possibly more a more detailed description give of the problem.
+
== Közreműködők és megjegyzések ==
  
How can you ask questions the smart way , here you can read about : http://catb.org/esr/faqs/smart-questions.html
+
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.
  
== Contributors & Comments ==
+
<!--[[Category:Lazarus/hu]]-->
  
This site is the English page translation , which epikwiki [ http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusFaq version] was drawn.
 
  
<!--[[ Category : Lazarus / en ]]-->
+
{{AutoCategory}}
 +
[[Category:Lazarus/hu]]
 +
[[Category:FAQs/hu]]

Latest revision as of 02:53, 16 February 2020

العربية (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 a Lazarus?

A Lazarus egy kereszt-platformos integrált fejlesztői környezet (IDE), melynek segítségével grafikus felületű (GUI) és parancssoros Object Pascal programok készíthetők, és amely a futtatható állományok elkészítéséhez a Free Pascal fordítót használja. Jelmondata írd meg egyszer, fordítsd le bárhol: a program forráskódja lefordítható egy másik operációs rendszeren futó Lazarus-szal (vagy keresztfordítóval) és az így létrehozott állomány futtatható lesz azon a rendszeren.

Részletekért lásd: A Lazarus és a Free Pascal áttekintése

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. Nem foglal feleslegesen memóriát a helyben történő kitömörítés alatt. Nagyon gyorsan tömöríti ki az állományokat (~10 MB/másodperc egy Pentium 133 gépen).

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

Hiba: 'Fatal: Circular unit reference between a and b'

Ez egy gyakori dolog, ami az új felhasználókkal történhet, amikor két form-ot készít, melyekből egymás tulajdonságait akarja elérni. A fenti hiba az interface részben a uses használatakor keletkezik, ezért a hivatkozást át kell tenni az implementation részbe. Példa:

Ez hibát okoz:

 unit a;
 
 interface
 
 uses b;
 
 implementation
 
 end.
 ...
 unit b;
 
 interface
 
 uses a;
 
 implementation
 
 end.

Ez viszont nem:

 unit a;
 
 interface
 
 implementation
 
 uses b;
 
 end.
 ...
 unit b;
 
 interface
 
 implementation
 
 uses a;
 
 end.

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.

Gondok a GDB használatával macOS rendszeren

Olvasd el a hibakereső tippeket Mac rendszerhez (angol)

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?

Mindenek előtt egy hibakeresőre lesz szükséged. Linux-on a szabványos hibakereső a gdb, melyhez több grafikus felületű kezelőprogram is készült. Egy gyakran használt ilyen program a ddd, mely a legtöbb Linux disztrinúciónak része. A lazarus/lcl hibakeresési információkkal történő fordításához és a hibakeresés indításához a következőwith parancsokat kell kiadni:

 $ make clean; make OPT=-dDEBUG
 $ ddd lazarus

Legyél figyelmes, mivel a ddd nem teljesen úgy működik mint a Lazarus hibakaresője. Ha egy változó tartalmát kell megjeleníteni ügyelned kell arra, hogy a ddd/gdb megkülönbözteti a kis és nagy betűket, miközben a Pascal nem teszi ezt. E miatt az összes változó nevét nagy betűkkel kell írnod, hogy láthasd a tartalmukat. További információkat az FPC dokumentációjában találsz.

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

Ez az útvonalakkal kapcsolatos hiba a gdb és a ddd esetében is. Így kerülheted el:

  • Használt a "Change directory" (könyvtár váltása) parancsot a ddd menüjéből és válaszd a könyvtárat ahol a forráskódok találhatók. E módszer hátránya hogy nem tudod használni a teljes forráskódot az így indított programhoz (pl.: Lazarus). Ezért több alkalommal is szükség lehet könyvtárváltásra.
  • A ddd menüjében kattints az [Edit] [gdb-settings] lehetőségre és állítsd be a keresési útvonalat
  • Hozd létre a $(HOME)/.gdbinit fájlt a következőképpen:
     directory /utvonal/lazarus
     directory /utvonal/lazarus/lcl
     directory /utvonal/lazarus/lcl/include

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

Csomag alapú összeállítások
Telepítened kell azt a csomagot, amelyik tartalmazza a lib<valami_lib>.so vagy lib<valami_lib>.a fájlokat. A dinamikus függvénytárak névkiterjesztése linux-on .so, a statikus függvénytáraké pedig .a. Néhány Linux összeállításban telepítve van az adott (rpm, deb) csomag amely tartalmazza a <valami_lib> állományt, de ilyenkor is telepítened kell a fejlesztői (rpm, deb) csomagokat, amelyek neve általában <csomagnév>-dev, amiben megtalálható a függvénytár .a (statikus) és/vagy .so (dinamikus) változata.
Egyes összeállításokban van parancs amellyel meg lehet keresni, hogy melyik csomag tartalmaz egy adott fájlt:
Mandriva
[]$ urpmf lib<valami_lib>.so
listát készít az összes csomagról amely tartalmazza a lib<valami_lib>.so fájlt, ezek közül az egyik -devel végződésűt kell telepítened.
Debian
telepítsd az apt-file eszközt (apt-get install apt-file) majd
[]$ apt-file search lib<valami_lib>.so
listát készít az összes csomagról amely tartalmazza a lib<valami_lib>.so fájlt, ezek közül az egyik -dev végződésűt kell telepítened.

SuSE

A SuSE a gtk fejlesztői függvénytárakat a /opt/gnome/lib könyvtárba telepíti (vagy a /opt/gnome/lib64 könyvtárba 64 bites rendszeren), ami nem a szokásos helye a függvénytáraknak. Egyszerűen add ezt az útvonalat a /etc/fpc.cfg fájlhoz (így: -Fl/opt/gnome/lib).


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"

1. Ellenőrizd egy tiszta fordítással is, így: 'make clean all'

2. Ellenőrizd, hogy a fordító megfelelő változatát használod (2.0.4 vagy újabb)

3. Ellenőrizd, hogy a fordító a megfelelő beállítási fájlt használja-e. A normál telepítés létrehozza a /etc/fpc.cfg fájlt, de az FPC keresni fogja a ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg fájlokat is és csak azt használja amelyiket előbb találja meg.

Tipp: Megtudhatod, hogy melyik beállítási fájl van használatban a következő paranccsal: 'ppc386 -vt bogus'
Törölj minden ppc386.cfg ha már nincs rá szükséged.

4. Ellenőrizd, hogy a beállítási fájl (/etc/fpc.cfg) a megfelelő útvonalakat tartalmazza. Három, ezekhez sornak kell a fájlban:

   -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
   -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
   -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
Az útvonalak első része (/usr/lib/fpc) a rendszeredtől függ. Egyes rendszereken például /usr/local/lib/fpc/... .
Tipp: A keresési útvonalakat is megjelenítheted a következő parancsal: 'ppc386 -vt bogus'

5. Ellenőrizd, hogy a beállítási fájl (/etc/fpc.cfg) nem az LCL forráskódokra (.pp, .pas) mutató útvonalakat tartalmaz:

 nem jó: -Fu(lazarus_source_directory)/lcl
 nem jó: -Fu(lazarus_source_directory)/lcl/interfaces/gtk
Ha az LCL-t minden FPC projektedhez hozzá akarod adni, ellenőrizd hogy a két útvonal úgy néz ki mint a következők és fenti FPC lib útvonak után vannak elhelyezve:
 -Fu(lazarus_source_directory)/lcl/units/$fpctarget
 -Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk

6. Ellenőrizd, hogy a hiányzó unit (glib.ppu) megtalálható az fpc lib könyvtárban. Például a gtk.ppu megtalálható a /usr/lib/fpc/$fpcversion/units/i386-linux/gtk/ könyvtárban. Ha nem létezik akkor az fpc lib sérült és újra kell telepíteni.

7. Ellenőrizd, hogy a fájlok egy csatolt NFS könyvtárban vannak-e. Néhány esetben az NFS frissítések helytelenül hozhatnak létre fájlokat. Próbáld meg áthelyezni a forráskódokat egy nem NFS könyvtárba és ott fordrítani.

8. Ha még mindig nem sikerült próbáld használni a samplecfg szkriptet a következő módon:

# cd /usr/lib/fpc/version/

# sudo ./samplecfg /usr/lib/fpc/\$version /etc

Figyelem! Ne írj / jelet az etc után, mert ha így teszel a rendszer a /etc/fpc.cfg/fpc.cfg fájlt hozza létre. Valójában pedig azt akarjuk, hogy a samplecfg a egy fájlt hozzon létre /etc/fpc.cfg néven és ne a /etc/fpc.cfg könyvtárat.

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: term papers writing service 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 'Win32 GUI alkalmazás' jelölőnégyzetet a Lazarus IDE fordítói beállításai között, a menüből indulva: "Projekt / Projekt beállításai / Fordító beállításai / Beállítás és cél / Cél-függő beállítások / Win32 GUI alkalmazás (-WG)".

macOS

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

Hibakeresés

Olvasd el a hibakereső tippeket Mac rendszerhez (angol)

Engedélyek (Licencek)

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

Igen, az LCL az LGPL engedélyei szerint használható egy olyan kivétellel/kiegészítéssel, amely megengedi a statikus összefűzést (linkelést) az alkalmazásod forráskódjának közreadása nélkül. A változtatásokat és fejlesztéseket az LCL kódjában azonban annak forráskódjával együtt terjeszteni kell. A Lazarus IDE a GPL licenc hatálya alatt áll. Az LCL csak azokat a forráskódokat tartalmazza melyek az 'lcl' könyvtárban találhatók, egyéb kódokat nem szabad ide elhelyezni és ezzel álcázni.

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 említsd meg melyik Lazarus, Free Pascal, Vezérlőkészlet (widgetset), CPU és Operációs Rendszer (pontosan meghatározott) változatot használod! Nem elég annyi hogy a "legfrissebb", mindig egyértelmű változatszámot adj meg. Napi kód (fejlesztői változat) esetén a felülvizsgálat száma (revision number) és/vagy dátuma is fontos.

Amikor arról érdeklődsz, hogy valami miért nem működik mindig mellékelj egy rövid forráskódot, ami bemutatja a problémát. A forráskódot a [code] és [/code] címkékkel fogd közre (vagy használd a kód beszúrására használatos gombot a fórum eszköztárán). Teljes programokat (forráskód) is mellékelhetsz zip-be csomagolva, ehhez jól használható a Lazarus "Projekt / Projekt közzététele ..." menüpontja.

Ha hibajelzést kapsz a kódoddal kapcsolatban mindig írd meg a hibaüzenetet. A fordító, a hibakereső vagy a programod által jelzett hiba egyszerű másolása a legtöbb esetben elegendő lehet. Ha a hibajelzés a programod futása közben keletkezik használd a -gl (sorszámok megjelenítése futási hibák esetén) kapcsolót és ne használj "inline" kódot a fordításkor, így megfelelő információk készülhetnek a visszakövetéshez.

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 adni a feladatról (mi a megvalósítandó cél) és lehetőleg minél részletesebb leírást a problémáról (milyen módon próbálod megvalósítani a célt). Gyakran van sokkal egyszerűbb módja a dolgok véghezvitelének, melyről esetleg nem tudsz.

Végül, de nem utolsó sorban, győződj meg róla, hogy minden vonatkozó dokumentációt megkerestél és el is olvastál (pl. FPC dokumentáció és a Lazarus wiki, lásd pl. Lazarus dokumentáció. Továbbá kereshetsz a fórumon is válaszokat: mások talán már találkoztak ugyanazzal a problémával és megoldásaik is lehetnek. Ha látható, hogy már próbáltál megoldást találni az emberek szívesebben segítenek.

Arról, hogy miként tehetsz fel kérdéseket okosan, itt olvashatsz: Hogyan kérdezzünk okosan: http://esr.fsf.hu/smart-questions_hu.html

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.