Dev
Lazarus 0.9.30 - Erőforrás kezelés
A Lazarus következő verziójában megjelenő egyik legnagyobb változás az a módosított erőforrás kezelés lesz. A fő probléma a "régi" erőforrás kezeléssel az volt, hogy minden .lfm streamet egy .lrs fájlból be kellett illeszteni a unit initialization részébe. Mi a rossz ebben?
- Először is az .lrs fájlokat is tárolni kell a projektben, ami elég tárhely igényes.
- Második rossz dolog az
initializationrész használata (az ebből a részből hívott utasítások a program indulásakor hajtódnak végre). Ha pl. 200 form van az alkalmazásban, akkor a program indulásakor kétszáz rutint kell végrehajtani. Ez nem túl jó dolog, ha a sebesség is számít. - Végül pár szó az erőforrásokhoz szükséges memóriáról és a memória lefoglalásának módjáról. Az .lrs erőforrások a program kódjában (amelyek induláskor végrehajtódnak) és
TListosztálban egyaránt tárolva vannak. Tehát minden erőforrás kétszer van tárolva. Sőt ha újabb erőforrást akarunk hozzáadni aTList-hez, akkor az összes erőforrás memóriáját újra le kell foglalni:TList.Grow
Ezek a problémák tökéletesen megoldhatók az FPC 2.4.0 bevezetett natív erőforrás kezeléssel. Az FPC 2.4.0-s változatától kezdve lehetőség van a form erőforrások használatára az {$R *.lfm} direktíva használatával. Természetesen nincs szükség az .lrs fájlok tárolására és az initialization részre, valamint minden erőforrást is csak egyszer kell tárolni.
Mivel az erőforrás kezelésnek ezen módja sokkal hatékonyabb, a Lazarus fejlesztői úgy döntöttek, hogy ez legyen az alapértelmezett erőforrás kezelés. Természetesen az .lrs fájlok továbbra is használhatók maradnak, valamint a felhasználó eldöntheti, hogy az erőforrások tárolásának melyik módját választja.
Még egy az erőforrásokat érintő változás történt az XP manifest, a verzió információ és a projekt ikon kezelésben. Eddig több mint 5 fájlra volt szükség ezeknek az erőforrásoknak a tárolásához: egy ikont tartalmazó .lrs fájl, egy a manifest fájlra hivatkozó .rc fájl, verzió infó és projekt ikon fájlok. A projekt könyvtár leginkább egy állatkertre hasonlított. Ezentúl már csak egy .res és egy ikon fájlra lesz szükség. A .res fájt az új FreePascal állítja elő az fcl-res csomag segítségével. Ez azt jelenti, hogy nem kell többé a windres-t használni. A .res fájl minden platformon használható, míg korábban az .rc csak Windowson, az .lrs pedig a többi platformon volt használható.
Figyelem: a {$ifdef windows}{$R you_project.rc}{$endif} sort manuálisan kell kitörölni a az .lpr fájlból (ha van benne). Elképzelhető, hogy a jövőben készül erre automatikus megoldás.
Az új erőforrás kezelés előnyei tehát:
- Kevesebb szemét a projekt könyvtárban, kisebb méret
- Kisebb és gyorsabb programok (nincs szükség az
initializationrészre) - Kevesebb memória használat
- Egységes erőforrás kezelés minden platformon
Hogyan változtassuk meg a Windows Start gomb feliratát?
Unod már a Windows Start menüjének feliratát? Ha van jobb ötleted, nincs más dolgod mint kézbe venni egy Delphit vagy Lazarust és már le is cserélheted. Valahogy így:
var sbHwnd: hWnd;
begin
sbHwnd:=GetWindow(FindWindow('Shell_TrayWnd',nil),GW_CHILD or GW_HWNDFIRST);
SetWindowText(sbHwnd,PChar(Text));
SendMessage(sbHwnd,WM_SETFOCUS,0,0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ChangeStartButtonText('Uccu');
end;
És az eredmény:

Windows XP-n működik.
Update: Akinek kedve van hozzá, le is töltheti a programot és a forráskódját is.
12 Ünnepi Rad Studio 2010 videó - 12: Dll-ek írása Rad Studioban
Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.
A tizenkettedik videó egy Delphi és Dephi Prism által használható unmanaged dll létrehozását mutatja be Delphiben.
A sorozat korábbi részei:
12 Ünnepi Rad Studio 2010 videó - 11: GUI Tippek és Trükkök
Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.
A tizenegyedik videó (kb. 20 perc) néhány új GUI komponens használatát mutatja be. Ezen kívül az új funkciók használatához is mutat néhány tippet.
Ez videó azért nem került fel a YouTube-ra, mert hosszabb mint 10 perc.
12 Ünnepi Rad Studio 2010 videó - 10: Debug Visualizer
Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.
A tizedik videó a RAD Studio 2010 környezetben megjelent Debug Visualizer használatát mutatja be.
A Debug Visualizer megmutatja, hogy mi történik pl. egy TStringList belsejében.
FreePascal 2.4.0
Megjelent a FreePascal fordító 2.4.0-ás változata.
Újdonságok:
- Delphi szerű erőforrások minden platformon
- Dwarf debug információs fejlesztések
- Néhány új cél rendszer:
- 64-bit Mac OS X (x86_64/ppc64)
- iPhone (Mac OS X/Arm)
- Haiku (from the BeOS family)
- Javított ARM EABI támogatás
- Teljes program optimalizálás
- Számos hibajavítás a fordítóban és fél évnyi library frissítés (a 2.2.4.-óta)
További információk és letöltés: itt.
A meglévő forráskódokat esetlegesen érintő változások listája: itt.
12 Ünnepi Rad Studio 2010 videó - 9: Klasszikus kinézet
Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.
A kilencedik videó a Delphi 7-ben megszokott klasszikus IDE használatát és beállítását mutatja be RAD Studio 2010 környezetben.
Jól jöhet a klasszikus IDE több monitoros környezetben, ahol pl. egyik ablakban a formot tervezzük és kódot írjuk hozzá, míg egy másik monitoron a fordító, vagy éppen a debugger üzeneteit akarjuk megjeleníteni.
Delphi formok Lazarusban
A FreePascal 2.5.1 használatával a Lazarus lehetővé teszi a formok lfm formátumba mentését lrs fájlok használata nélkül. Ez még jobban megkönnyíti a Delphi kódok átültetését Lazarusra.
Előfeltételek:
- Lazarus trunk verzió
- FreePascal trunk verzió (2.5.1-el tesztelve, de állítólag a 2.4.0-val is működik)
Lépések:
- A Project options-nál, Miscellaneous fülön válasszuk ki a Fpc resources-t.
- Másoljuk a dfm fájlt az lfm fájlba.
- Lazarusban nyissuk meg a pas fájlt.
- Keressük meg a dfm fájl hivatkozását, majd cseréljük le erre:{$IFDEF LCL}
{$R *.lfm}
{$ELSE}
{$R *.dfm}
{$ENDIF} - Az
initializationrészben keressük meg az lrs fájl beillesztését{$I valami.lrs}, majd távolítsuk el. - Az F12 (View menü: Toggle form/unit view) megnyomása után már láthatjuk is a formunkat.
- A természetesen figyelmeztetéseket fogunk kapni a Lazarusban nem létező tulajdonságokról, de ezeket nyugodtan figyelmen kívül hagyhatjuk. Ez a legtöbb esetben megfelelő, de egy komoly fejlesztő mindig elolvassa és elemzi az ilyen üzenetek fontosságát és következményeit.
- Mentés után jöhet a fordítás.
Mint mindig, most se felejtsük el hozzáadni a unit fejlécében a uses szekcióhoz a szükséges unitokat (LclType, LResources, stb).
12 Ünnepi Rad Studio 2010 videó - 8: Fordítás a háttérben
Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.
A nyolcadik videó a Rad Studio 2010-ben megjelent új funkció a fordítás a háttérben használatát mutatja be. Ez a funkció lehetővé teszi a fájlok szerkesztését, töréspontok beállítását és módosítását a projekt fordítása közben.
Ez igazából csak olyan projektek esetén lehet hasznos, amikor több perc (>5) alatt végez a fordító, egyébkét az a pár másodperc pont jó arra, hogy az ember egy kicsit lazítson, végiggondolja, hogy mit is rontott el.
12 Ünnepi Rad Studio 2010 videó - 7: Hello Calculator
Az Embarcadero az ünnepek alkalmából 12 videót tesz közzé a Rad Studio 2010-ről.
A hetedik videó a Delphi Prism használatát mutatja be egy egyszerű számológépen keresztül:









Friss hozzászólások
6 nap 3 óra
6 nap 3 óra
1 hét 10 óra
1 hét 2 nap
1 hét 3 nap
1 hét 3 nap
2 hét 1 nap
2 hét 2 nap
3 hét 1 nap
3 hét 4 nap