Revision 1 of 3, by Trev on 2-17-2020. The page as it is now.
IDE tricks/hu
IDE trükkök
Új fájl létrehozása Fájl megnyitásával
<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 (<span class="kbd">CTRL</span> + <span class="kbd">O</span>) é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
<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. Regisztrálhatsz további fájltípusokat az IDEIntf-en vagy a projekt sablonok csomagon keresztül.
</div>
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
<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.
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.
</div>
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.
</div>
Komponens paletta
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.
</div>
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
<div style="text-align: justify;">
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.
</div>
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:
: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.
</div>
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.
- 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.
</div>
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. Ez egy általános LCL lehetőség.
</div>
Egy IDE ablak forrás fájljának megkeresése
- Nyisd meg az IDE ablakot.
- Nyomd meg a <span class="kbd">CTRL</span> + <span class="kbd">Shift</span> + <span class="kbd">F1</span> 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
<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.
</div>
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:
- 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 isMivel 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őrziNe használd:
if OnMyEvent = NewValue then Exit; // hibás, mert csak a Code-ot ellenőrziMivel 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</div>
From the Free Pascal wiki, page "IDE tricks/hu", as it stood on 2020-02-17 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
