Difference between revisions of "IDE tricks/hu"
(New page: {{IDE trükkök}} = Új fájl létrehozása Fájl megnyitásával = Létrehozhatsz új fájlt és elmentheted, vagy létrehozhatsz egy új fájl fájlnévvel és típussal egy lépésben...) |
m (Fixed syntax highlighting; deleted category included in page template) |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | {{IDE | + | {{IDE tricks}} |
+ | |||
+ | |||
+ | = IDE trükkök = | ||
+ | |||
+ | |||
+ | __TOC__ | ||
= Új fájl létrehozása Fájl megnyitásával = | = Új fájl létrehozása Fájl megnyitásával = | ||
− | Létrehozhatsz új fájlt és elmentheted, vagy létrehozhatsz egy új fájl fájlnévvel és típussal egy lépésben is: egyszerűen nyiss meg egy fájlt (CTRL + | + | <div style="text-align: justify;"> |
+ | Létrehozhatsz új fájlt és elmentheted, vagy létrehozhatsz egy új fájl fájlnévvel és típussal egy lépésben is: egyszerűen nyiss meg egy fájlt ({{keypress|CTRL}} + {{keypress|O}}) és válassz ki egy nem létező fájlt. Például: unit1.pas. Az IDE rá fog kérdezni, hogy létrehozza-e. | ||
+ | </div> | ||
= Új unit / form testreszabása = | = Új unit / form testreszabása = | ||
+ | <div style="text-align: justify;"> | ||
A 0.9.27-es verziótól kezdve jobb gombbal klikkelve az 'Új unit' (Új form) gyorsgombra, beállíthatod a létrehozandó fájl típusát. | A 0.9.27-es verziótól kezdve jobb gombbal klikkelve az 'Új unit' (Új form) gyorsgombra, beállíthatod a létrehozandó fájl típusát. | ||
Regisztrálhatsz további fájltípusokat az IDEIntf-en vagy a projekt sablonok csomagon keresztül. | Regisztrálhatsz további fájltípusokat az IDEIntf-en vagy a projekt sablonok csomagon keresztül. | ||
+ | </div> | ||
= IDE makrók = | = IDE makrók = | ||
− | [[IDE Macros in paths and filenames]] | + | [[IDE Macros in paths and filenames|IDE makrók az elérési utakban és fájlnevekben]] |
= IDE direktívák = | = IDE direktívák = | ||
− | [[IDE directives]] | + | [[IDE directives|IDE direktívák]] |
= Az IDE által létrehozott fordítói parancssori paraméterek megszerzése = | = Az IDE által létrehozott fordítói parancssori paraméterek megszerzése = | ||
− | Kimásolhatod a paramétereket a Projekt -> Fordító beállításai | + | <div style="text-align: justify;"> |
+ | Kimásolhatod a paramétereket a Projekt -> Fordító beállításai ... menü Beállítások megjelenítése gombra klikkelve megnyíló ablakból. Itt a projekt könyvtárhoz képest relatív elérési utak vannak megadva. Tehát a legtöbb esetben módosítás nélkül felhasználhatod őket. | ||
A paraméterek a *.compiled fájlban is megtalálhatók. Például, ha a projekted neve test1.lpi, akkor a test1.compiled is létrejön. Ez egy egyszerű XML fájl, tehát egyszerűen kimásolhatod az opciókat, és beállíthatod az elérési utakat, hogy egy másik számítógépen is le tudd fordítani a projektedet. A fájl ugyanabba a könyvtárba kerül, ahol a futtatható fájl létrejön. | A paraméterek a *.compiled fájlban is megtalálhatók. Például, ha a projekted neve test1.lpi, akkor a test1.compiled is létrejön. Ez egy egyszerű XML fájl, tehát egyszerűen kimásolhatod az opciókat, és beállíthatod az elérési utakat, hogy egy másik számítógépen is le tudd fordítani a projektedet. A fájl ugyanabba a könyvtárba kerül, ahol a futtatható fájl létrejön. | ||
Line 27: | Line 38: | ||
Ezzel a módszerrel lefordíthatod a - remélhetőleg működő és hibamentes - kódodat, a Lazarus IDE-n kívül is. | Ezzel a módszerrel lefordíthatod a - remélhetőleg működő és hibamentes - kódodat, a Lazarus IDE-n kívül is. | ||
+ | </div> | ||
= Minden szerkesztett fájl bezárása egy kivételével = | = Minden szerkesztett fájl bezárása egy kivételével = | ||
+ | <div style="text-align: justify;"> | ||
GTK alatt (elérhető Linux-on, Mac OS X-en és FreeBSD-n), a forráskód szerkesztő lapfülein bezáró gombok is megjelennek. Ha a bezáró gombra klikkelsz a CTRL lenyomásával egy időben, akkor minden szerkesztett fájl be lesz zárva, kivéve amelyikre klikkeltél. | GTK alatt (elérhető Linux-on, Mac OS X-en és FreeBSD-n), a forráskód szerkesztő lapfülein bezáró gombok is megjelennek. Ha a bezáró gombra klikkelsz a CTRL lenyomásával egy időben, akkor minden szerkesztett fájl be lesz zárva, kivéve amelyikre klikkeltél. | ||
+ | </div> | ||
= Komponens paletta = | = Komponens paletta = | ||
Line 36: | Line 50: | ||
== Komponens megkeresése a palettában == | == Komponens megkeresése a palettában == | ||
+ | <div style="text-align: justify;"> | ||
Tudod a komponens nevét, vagy egy részét, de nem tudod, melyik lapon található? Ez az eszköz segít: klikkelj a jobb egérgombbal az egyik komponensre a palettában, hogy a felugró menüt megjelenítsd. Válaszd ki a 'Komponens megkeresése' menüpontot. Írd be a komponens nevének részletét, hogy szűrd a listát. | Tudod a komponens nevét, vagy egy részét, de nem tudod, melyik lapon található? Ez az eszköz segít: klikkelj a jobb egérgombbal az egyik komponensre a palettában, hogy a felugró menüt megjelenítsd. Válaszd ki a 'Komponens megkeresése' menüpontot. Írd be a komponens nevének részletét, hogy szűrd a listát. | ||
+ | </div> | ||
== A palettában lévő komponens csomagjának megnyitása == | == A palettában lévő komponens csomagjának megnyitása == | ||
Line 60: | Line 76: | ||
== VNC használata == | == VNC használata == | ||
+ | <div style="text-align: justify;"> | ||
A VNC szerver/kliens használható a tightvncserver/realvncserver telepítésével. | A VNC szerver/kliens használható a tightvncserver/realvncserver telepítésével. | ||
Indítsd el a szervert így: | Indítsd el a szervert így: | ||
Line 65: | Line 82: | ||
Ha minden igaz, egy munkamenet is el fog indulni. Csatlakozhatsz a VNC szerverhez a vncviewer-rel. | Ha minden igaz, egy munkamenet is el fog indulni. Csatlakozhatsz a VNC szerverhez a vncviewer-rel. | ||
+ | </div> | ||
== Alkalmazás hibakeresése a második szerveren == | == Alkalmazás hibakeresése a második szerveren == | ||
+ | <div style="text-align: justify;"> | ||
Lazarus-ban, a projekted futtatási paraméterei között pipáld be a "Megjelenítő használatá"-t és írd be: | Lazarus-ban, a projekted futtatási paraméterei között pipáld be a "Megjelenítő használatá"-t és írd be: | ||
:1 | :1 | ||
Így az alkalmazásod a második szerveren fog futni, tehát amikor a hibakereső fut, csak a második szerver fog lefagyni, de ez nem fog befolyásolni téged, mivel az elsőn megy a hibakeresés. | Így az alkalmazásod a második szerveren fog futni, tehát amikor a hibakereső fut, csak a második szerver fog lefagyni, de ez nem fog befolyásolni téged, mivel az elsőn megy a hibakeresés. | ||
+ | </div> | ||
= Az IDE gyors fordítása = | = Az IDE gyors fordítása = | ||
+ | <div style="text-align: justify;"> | ||
A Lazarus-szal való dolgozás során sokszor előfordul, hogy újra kell építeni az IDE-t. Ha a következő trükköket használod és van elég memóriád egy újabb CPU-val, akkor lehetőséged van pár másodperc alatt újrafordítani az IDE-t. | A Lazarus-szal való dolgozás során sokszor előfordul, hogy újra kell építeni az IDE-t. Ha a következő trükköket használod és van elég memóriád egy újabb CPU-val, akkor lehetőséged van pár másodperc alatt újrafordítani az IDE-t. | ||
* Tedd a Lazarus forrásait egy gyors merevlemezre. Ne egy lassú hálózati fájlrendszerre. | * Tedd a Lazarus forrásait egy gyors merevlemezre. Ne egy lassú hálózati fájlrendszerre. | ||
Line 80: | Line 101: | ||
* Állítsd be a USESVN2REVISIONINC=0-t, hogy átlépd a revision.inc frissítésést. | * Állítsd be a USESVN2REVISIONINC=0-t, hogy átlépd a revision.inc frissítésést. | ||
* Fordíts csak részeket. Ha a csomagkezelő újrafordul, akkor minden csomag újrafordul vele. Ha az IDEIntf újrafordul, akkor minden telepített tervezés idejű csomag is újrafordul. | * Fordíts csak részeket. Ha a csomagkezelő újrafordul, akkor minden csomag újrafordul vele. Ha az IDEIntf újrafordul, akkor minden telepített tervezés idejű csomag is újrafordul. | ||
+ | </div> | ||
= IDE vagy LCL alkalmazás DebugLn-jei = | = IDE vagy LCL alkalmazás DebugLn-jei = | ||
+ | <div style="text-align: justify;"> | ||
Az IDE sok hasznos tippet kiír a DebugLn-en keresztül. Windows alatt elmentheted őket a Lazarus ''--debug-log=filename.txt'' parancssori paraméterével. Linux/BSD/Mac OS X/Solaris alatt: egyszerűen indítsd a Lazarus-t egy terminálból. | Az IDE sok hasznos tippet kiír a DebugLn-en keresztül. Windows alatt elmentheted őket a Lazarus ''--debug-log=filename.txt'' parancssori paraméterével. Linux/BSD/Mac OS X/Solaris alatt: egyszerűen indítsd a Lazarus-t egy terminálból. | ||
Ez egy általános LCL lehetőség. | Ez egy általános LCL lehetőség. | ||
+ | </div> | ||
= Egy IDE ablak forrás fájljának megkeresése = | = Egy IDE ablak forrás fájljának megkeresése = | ||
* Nyisd meg az IDE ablakot. | * Nyisd meg az IDE ablakot. | ||
− | * Nyomd meg a | + | * Nyomd meg a {{keypress|CTRL}} + {{keypress|Shift}} + {{keypress|F1}} billentyűkombinációt a súgó szerkesztő megnyitásához. |
* Jegyezd meg az ablak osztályának nevét. Zárd be az ablakot. | * Jegyezd meg az ablak osztályának nevét. Zárd be az ablakot. | ||
* Használd az [[IDE Window: Find in files|Find In Files]]-t, hogy megtaláld az osztály forrás fájlját. | * Használd az [[IDE Window: Find in files|Find In Files]]-t, hogy megtaláld az osztály forrás fájlját. | ||
Line 95: | Line 119: | ||
= Objektum Felügyelő: Események: Keretek: Ugrás az öröklött esemény forrására = | = Objektum Felügyelő: Események: Keretek: Ugrás az öröklött esemény forrására = | ||
+ | <div style="text-align: justify;"> | ||
Az Objektum Felügyelő megjeleníti az öröklött események eseményeit ''Osztálynév.Metódusnév''-ként. Dupla kattintásra egy új esemény jön létre. Ctrl+Klikk az esemény legördülő menüjén közvetlenül az öröklött metódusra ugrik, anélkül, hogy új eseményt hozna létre. | Az Objektum Felügyelő megjeleníti az öröklött események eseményeit ''Osztálynév.Metódusnév''-ként. Dupla kattintásra egy új esemény jön létre. Ctrl+Klikk az esemény legördülő menüjén közvetlenül az öröklött metódusra ugrik, anélkül, hogy új eseményt hozna létre. | ||
+ | </div> | ||
= Események (Metódus tulajdonságok) az Objektum Felügyelőben = | = Események (Metódus tulajdonságok) az Objektum Felügyelőben = | ||
+ | <div style="text-align: justify;"> | ||
Az események (Metódus tulajdonságok) különleges tulajdonságok, mert értékként egy kódra (függvényre) mutató pointer-t kérnek, ami nem létezik tervezés közben. Ez az, amiért a Lazarus ugyanazt a trükköt alkalmazza, mint a Delphi: Minden metódus értékének típusa konvertálható ("type cast"-elhető) TMethod-ra, ami tartalmazza a ''Data'' (az objektum vagy osztály pointer) és a ''Code'' (a cím pointer) mezőket. Alap esetben, egyik sem nil (null pointer). Az IDE beállítja a Data-t egy különleges kulcs értékre a belső kereső táblája alapján, és a Code-ot nil-re. Ez azt jelenti: | Az események (Metódus tulajdonságok) különleges tulajdonságok, mert értékként egy kódra (függvényre) mutató pointer-t kérnek, ami nem létezik tervezés közben. Ez az, amiért a Lazarus ugyanazt a trükköt alkalmazza, mint a Delphi: Minden metódus értékének típusa konvertálható ("type cast"-elhető) TMethod-ra, ami tartalmazza a ''Data'' (az objektum vagy osztály pointer) és a ''Code'' (a cím pointer) mezőket. Alap esetben, egyik sem nil (null pointer). Az IDE beállítja a Data-t egy különleges kulcs értékre a belső kereső táblája alapján, és a Code-ot nil-re. Ez azt jelenti: | ||
Line 106: | Line 133: | ||
Ne használd: | Ne használd: | ||
− | < | + | <syntaxhighlight lang=pascal> |
if OnMyEvent <> nil then OnMyEvent(...); // hibás, mert ellenőrzi a Data-t is | if OnMyEvent <> nil then OnMyEvent(...); // hibás, mert ellenőrzi a Data-t is | ||
− | </ | + | </syntaxhighlight> |
Mivel ez így ellenőrzi a Data-t és a Code-ot is, és egy hamis metódusra fog ugrani, magyarán ugrás lesz nil-re. Ez kivételt fog generálni, szóval nem okoz különösebb gondot, de az IDE hibaüzenetet fog küldeni, és a program futása leáll. | Mivel ez így ellenőrzi a Data-t és a Code-ot is, és egy hamis metódusra fog ugrani, magyarán ugrás lesz nil-re. Ez kivételt fog generálni, szóval nem okoz különösebb gondot, de az IDE hibaüzenetet fog küldeni, és a program futása leáll. | ||
Helyette használd inkább az Assigned függvényt: | Helyette használd inkább az Assigned függvényt: | ||
− | < | + | <syntaxhighlight lang=pascal> |
if Assigned(OnMyEvent) then OnMyEvent(...); // helyes, mert csak a Code-ot ellenőrzi | if Assigned(OnMyEvent) then OnMyEvent(...); // helyes, mert csak a Code-ot ellenőrzi | ||
− | </ | + | </syntaxhighlight> |
Ne használd: | Ne használd: | ||
− | < | + | <syntaxhighlight lang=pascal> |
if OnMyEvent = NewValue then Exit; // hibás, mert csak a Code-ot ellenőrzi | if OnMyEvent = NewValue then Exit; // hibás, mert csak a Code-ot ellenőrzi | ||
− | </ | + | </syntaxhighlight> |
Mivel ez így csak a Code-ot ellenőrzi, használd inkább ezt: | Mivel ez így csak a Code-ot ellenőrzi, használd inkább ezt: | ||
− | < | + | <syntaxhighlight lang=pascal> |
if CompareMem(@FOnMyEvent, @NewValue, SizeOf(TMethod)) then Exit; // helyes, mert a Data-t és a Code-ot is ellenőrzi | if CompareMem(@FOnMyEvent, @NewValue, SizeOf(TMethod)) then Exit; // helyes, mert a Data-t és a Code-ot is ellenőrzi | ||
− | </ | + | </syntaxhighlight> |
+ | </div> |
Latest revision as of 08:58, 17 February 2020
│
Deutsch (de) │
English (en) │
français (fr) │
magyar (hu) │
日本語 (ja) │
한국어 (ko) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
IDE trükkök
Új fájl létrehozása Fájl megnyitásával
Létrehozhatsz új fájlt és elmentheted, vagy létrehozhatsz egy új fájl fájlnévvel és típussal egy lépésben is: egyszerűen nyiss meg egy fájlt (CTRL + O) és válassz ki egy nem létező fájlt. Például: unit1.pas. Az IDE rá fog kérdezni, hogy létrehozza-e.
Új unit / form testreszabása
A 0.9.27-es verziótól kezdve jobb gombbal klikkelve az 'Új unit' (Új form) gyorsgombra, beállíthatod a létrehozandó fájl típusát. Regisztrálhatsz további fájltípusokat az IDEIntf-en vagy a projekt sablonok csomagon keresztül.
IDE makrók
IDE makrók az elérési utakban és fájlnevekben
IDE direktívák
Az IDE által létrehozott fordítói parancssori paraméterek megszerzése
Kimásolhatod a paramétereket a Projekt -> Fordító beállításai ... menü Beállítások megjelenítése gombra klikkelve megnyíló ablakból. Itt a projekt könyvtárhoz képest relatív elérési utak vannak megadva. Tehát a legtöbb esetben módosítás nélkül felhasználhatod őket.
A paraméterek a *.compiled fájlban is megtalálhatók. Például, ha a projekted neve test1.lpi, akkor a test1.compiled is létrejön. Ez egy egyszerű XML fájl, tehát egyszerűen kimásolhatod az opciókat, és beállíthatod az elérési utakat, hogy egy másik számítógépen is le tudd fordítani a projektedet. A fájl ugyanabba a könyvtárba kerül, ahol a futtatható fájl létrejön.
Csomagok esetén is ugyanez az eljárás használható.
Ezzel a módszerrel lefordíthatod a - remélhetőleg működő és hibamentes - kódodat, a Lazarus IDE-n kívül is.
Minden szerkesztett fájl bezárása egy kivételével
GTK alatt (elérhető Linux-on, Mac OS X-en és FreeBSD-n), a forráskód szerkesztő lapfülein bezáró gombok is megjelennek. Ha a bezáró gombra klikkelsz a CTRL lenyomásával egy időben, akkor minden szerkesztett fájl be lesz zárva, kivéve amelyikre klikkeltél.
Komponens paletta
Komponens megkeresése a palettában
Tudod a komponens nevét, vagy egy részét, de nem tudod, melyik lapon található? Ez az eszköz segít: klikkelj a jobb egérgombbal az egyik komponensre a palettában, hogy a felugró menüt megjelenítsd. Válaszd ki a 'Komponens megkeresése' menüpontot. Írd be a komponens nevének részletét, hogy szűrd a listát.
A palettában lévő komponens csomagjának megnyitása
Jobb klikk a komponensen a felugró menü megnyitásához, majd válaszd ki a Csomag megnyitását.
A palettában lévő komponens forrásának megnyitása
Jobb klikk a komponensen a felugró menü megnyitásához, majd válaszd ki a Unit megnyitását.
Az alkalmazásom lefagyasztja a Linux asztalomat hibakeresés közben
Az X (az asztalod) lefagyhat, amikor a gdb (a hibakereső) leállítja az alkalmazást, amelyikben az egér van.
Második X munkamenet használata
Egy második X-et elindíthatsz így:
X :1 &
Ctrl-Alt-F7-tel átváltasz :0-ra és Ctrl-Alt-F8-cal :1-re ezután elindíthatsz egy második gnome munkamenetet így:
gnome-session --display=:1 &
VNC használata
A VNC szerver/kliens használható a tightvncserver/realvncserver telepítésével. Indítsd el a szervert így:
vncserver :1
Ha minden igaz, egy munkamenet is el fog indulni. Csatlakozhatsz a VNC szerverhez a vncviewer-rel.
Alkalmazás hibakeresése a második szerveren
Lazarus-ban, a projekted futtatási paraméterei között pipáld be a "Megjelenítő használatá"-t és írd be:
:1
Így az alkalmazásod a második szerveren fog futni, tehát amikor a hibakereső fut, csak a második szerver fog lefagyni, de ez nem fog befolyásolni téged, mivel az elsőn megy a hibakeresés.
Az IDE gyors fordítása
A Lazarus-szal való dolgozás során sokszor előfordul, hogy újra kell építeni az IDE-t. Ha a következő trükköket használod és van elég memóriád egy újabb CPU-val, akkor lehetőséged van pár másodperc alatt újrafordítani az IDE-t.
- Tedd a Lazarus forrásait egy gyors merevlemezre. Ne egy lassú hálózati fájlrendszerre.
- Telepítsd csak a szükséges csomagokat.
- Állítsd be a USESVN2REVISIONINC=0-t, hogy átlépd a revision.inc frissítésést.
- Fordíts csak részeket. Ha a csomagkezelő újrafordul, akkor minden csomag újrafordul vele. Ha az IDEIntf újrafordul, akkor minden telepített tervezés idejű csomag is újrafordul.
IDE vagy LCL alkalmazás DebugLn-jei
Az IDE sok hasznos tippet kiír a DebugLn-en keresztül. Windows alatt elmentheted őket a Lazarus --debug-log=filename.txt parancssori paraméterével. Linux/BSD/Mac OS X/Solaris alatt: egyszerűen indítsd a Lazarus-t egy terminálból. Ez egy általános LCL lehetőség.
Egy IDE ablak forrás fájljának megkeresése
- Nyisd meg az IDE ablakot.
- Nyomd meg a CTRL + ⇧ Shift + F1 billentyűkombinációt a súgó szerkesztő megnyitásához.
- Jegyezd meg az ablak osztályának nevét. Zárd be az ablakot.
- Használd az Find In Files-t, hogy megtaláld az osztály forrás fájlját.
Objektum Felügyelő: Események: Keretek: Ugrás az öröklött esemény forrására
Az Objektum Felügyelő megjeleníti az öröklött események eseményeit Osztálynév.Metódusnév-ként. Dupla kattintásra egy új esemény jön létre. Ctrl+Klikk az esemény legördülő menüjén közvetlenül az öröklött metódusra ugrik, anélkül, hogy új eseményt hozna létre.
Események (Metódus tulajdonságok) az Objektum Felügyelőben
Az események (Metódus tulajdonságok) különleges tulajdonságok, mert értékként egy kódra (függvényre) mutató pointer-t kérnek, ami nem létezik tervezés közben. Ez az, amiért a Lazarus ugyanazt a trükköt alkalmazza, mint a Delphi: Minden metódus értékének típusa konvertálható ("type cast"-elhető) TMethod-ra, ami tartalmazza a Data (az objektum vagy osztály pointer) és a Code (a cím pointer) mezőket. Alap esetben, egyik sem nil (null pointer). Az IDE beállítja a Data-t egy különleges kulcs értékre a belső kereső táblája alapján, és a Code-ot nil-re. Ez azt jelenti:
- Futás időben, amikor a program betölti az .lfm fájlt, a valós metódus (Data+Code) van használatban.
- Tervezési időben a egy metódus értéke lehet egy valós metódus (Data <> nil és Code <> nil) vagy egy hamis metódus (Data <> nil, Code = nil).
- A fordító - Delphi kompatibilitási okokból - használ néhány különlegességet a metódus értékek összehasonlításához.
Ne használd:
if OnMyEvent <> nil then OnMyEvent(...); // hibás, mert ellenőrzi a Data-t is
Mivel ez így ellenőrzi a Data-t és a Code-ot is, és egy hamis metódusra fog ugrani, magyarán ugrás lesz nil-re. Ez kivételt fog generálni, szóval nem okoz különösebb gondot, de az IDE hibaüzenetet fog küldeni, és a program futása leáll. Helyette használd inkább az Assigned függvényt:
if Assigned(OnMyEvent) then OnMyEvent(...); // helyes, mert csak a Code-ot ellenőrzi
Ne használd:
if OnMyEvent = NewValue then Exit; // hibás, mert csak a Code-ot ellenőrzi
Mivel ez így csak a Code-ot ellenőrzi, használd inkább ezt:
if CompareMem(@FOnMyEvent, @NewValue, SizeOf(TMethod)) then Exit; // helyes, mert a Data-t és a Code-ot is ellenőrzi