IDE tricks/hu
│
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