Difference between revisions of "IDE tricks/hu"

From Lazarus wiki
Jump to navigationJump to search
m
Line 9: Line 9:
 
= Új fájl létrehozása Fájl megnyitásával =
 
= Ú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 (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.
 
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.
 +
</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 =
  
 +
<div style="text-align: justify;">
 
Kimásolhatod a paramétereket a Projekt -> Fordító beállításai -> Beállítások megjelenítése 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.
 
Kimásolhatod a paramétereket a Projekt -> Fordító beállításai -> Beállítások megjelenítése 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.
  
Line 33: 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 42: 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 66: 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 71: 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 86: 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 =
Line 101: 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 131: Line 152:
 
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
 
</Delphi>
 
</Delphi>
 +
</div>

Revision as of 21:06, 20 September 2010

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

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 -> Beállítások megjelenítése 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-et 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: <Delphi> if OnMyEvent <> nil then OnMyEvent(...); // hibás, mert ellenőrzi a Data-t is </Delphi>

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: <Delphi> if Assigned(OnMyEvent) then OnMyEvent(...); // helyes, mert csak a Code-ot ellenőrzi </Delphi>

Ne használd: <Delphi> if OnMyEvent = NewValue then Exit; // hibás, mert csak a Code-ot ellenőrzi </Delphi>

Mivel ez így csak a Code-ot ellenőrzi, használd inkább ezt: <Delphi> if CompareMem(@FOnMyEvent, @NewValue, SizeOf(TMethod)) then Exit; // helyes, mert a Data-t és a Code-ot is ellenőrzi </Delphi>