Sign in Join
Wiki copytemporary

IDE tricks/hu: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11# IDE trükkök
22
33# Új fájl létrehozása Fájl megnyitásával
44
55Lé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.
66
77# Új unit / form testreszabása
88
99A 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.
1010
1111# IDE makrók
1212
1313[[IDE Macros in paths and filenames|IDE makrók az elérési utakban és fájlnevekben]]
1414
1515# IDE direktívák
1616
1717[[IDE directives|IDE direktívák]]
1818
1919# Az IDE által létrehozott fordítói parancssori paraméterek megszerzése
2020
2121Kimá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.
2222
2323A 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.
2424
2525Csomagok esetén is ugyanez az eljárás használható.
2626
2727Ezzel a módszerrel lefordíthatod a - remélhetőleg működő és hibamentes - kódodat, a Lazarus IDE-n kívül is.
2828
2929# Minden szerkesztett fájl bezárása egy kivételével
3030
3131GTK 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.
3232
3333# Komponens paletta
3434
3535## Komponens megkeresése a palettában
3636
3737Tudod 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.
3838
3939## A palettában lévő komponens csomagjának megnyitása
4040
4141Jobb klikk a komponensen a felugró menü megnyitásához, majd válaszd ki a Csomag megnyitását.
4242
4343## A palettában lévő komponens forrásának megnyitása
4444
4545Jobb klikk a komponensen a felugró menü megnyitásához, majd válaszd ki a Unit megnyitását.
4646
4747# Az alkalmazásom lefagyasztja a Linux asztalomat hibakeresés közben
4848
4949Az X (az asztalod) lefagyhat, amikor a gdb (a hibakereső) leállítja az alkalmazást, amelyikben az egér van.
5050
5151## Második X munkamenet használata
5252
5353Egy második X-et elindíthatsz így:
5454
55-`  X :1 &`
55+```text
56+ X :1 &
57+```
5658
5759Ctrl-Alt-F7-tel átváltasz :0-ra és Ctrl-Alt-F8-cal :1-re ezután elindíthatsz egy második gnome munkamenetet így:
5860
59-`  gnome-session --display=:1 &`
61+```text
62+ gnome-session --display=:1 &
63+```
6064
6165## VNC használata
6266
6367A VNC szerver/kliens használható a tightvncserver/realvncserver telepítésével. Indítsd el a szervert így:
6468
65-`  vncserver :1`
69+```text
70+ vncserver :1
71+```
6672
6773Ha minden igaz, egy munkamenet is el fog indulni. Csatlakozhatsz a VNC szerverhez a vncviewer-rel.
6874
6975## Alkalmazás hibakeresése a második szerveren
7076
7177Lazarus-ban, a projekted futtatási paraméterei között pipáld be a "Megjelenítő használatá"-t és írd be:
7278
73-` :1`
79+```text
80+ :1
81+```
7482
7583Í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.
7684
7785# Az IDE gyors fordítása
7886
7987A 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.
8088
8189- Tedd a Lazarus forrásait egy gyors merevlemezre. Ne egy lassú hálózati fájlrendszerre.
8290- Telepítsd csak a szükséges csomagokat.
8391- Állítsd be a USESVN2REVISIONINC=0-t, hogy átlépd a revision.inc frissítésést.
8492- 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.
8593
8694# IDE vagy LCL alkalmazás DebugLn-jei
8795
8896Az 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.
8997
9098# Egy IDE ablak forrás fájljának megkeresése
9199
92100- Nyisd meg az IDE ablakot.
93101- Nyomd meg a `CTRL` + `Shift` + `F1` billentyűkombinációt a súgó szerkesztő megnyitásához.
94102- Jegyezd meg az ablak osztályának nevét. Zárd be az ablakot.
95103- Használd az [[IDE Window: Find in files|Find In Files]]-t, hogy megtaláld az osztály forrás fájlját.
96104
97105# Objektum Felügyelő: Események: Keretek: Ugrás az öröklött esemény forrására
98106
99107Az 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.
100108
101109# Események (Metódus tulajdonságok) az Objektum Felügyelőben
102110
103111Az 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:
104112
105113- Futás időben, amikor a program betölti az .lfm fájlt, a valós metódus (Data+Code) van használatban.
106114- 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).
107115- 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.
108116
109117Ne használd:
110118
111119``` pascal
112120if OnMyEvent <> nil then OnMyEvent(...); // hibás, mert ellenőrzi a Data-t is
113121```
114122
115123Mivel 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:
116124
117125``` pascal
118126if Assigned(OnMyEvent) then OnMyEvent(...); // helyes, mert csak a Code-ot ellenőrzi
119127```
120128
121129Ne használd:
122130
123131``` pascal
124132if OnMyEvent = NewValue then Exit; // hibás, mert csak a Code-ot ellenőrzi
125133```
126134
127135Mivel ez így csak a Code-ot ellenőrzi, használd inkább ezt:
128136
129137``` pascal
130138if CompareMem(@FOnMyEvent, @NewValue, SizeOf(TMethod)) then Exit; // helyes, mert a Data-t és a Code-ot is ellenőrzi
131139```
132140
133141---
134142*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](/wiki-contact).*

Back to history