Lazarus

Lazarus SVN + FreePascal 2.6.0 Ubuntu Linuxon

Volt itt már egy hasonló post, de azóta megjelent a FreePascal 2.6.0. Ezzel viszont eddig nem tudtam lefordítani a Lazarust. A programjaim simán mentek az 2.4.4-es verzióval is, úgyhogy nem nagyon foglalkoztam vele. De azért furdalt a kíváncsiság, hogy vajon mi lehet a baj, miért nem tudom a 2.6.0-val is lefordítani a Lazarus forráskódját? Mindig ezt a hibaüzenetet kaptam:

Compiling lazaruspackageintf.pas
Fatal: Can't find unit process used by RegisterFCL
Fatal: Compilation aborted
make[1]: *** [fcllaz.ppu] Error 1
make[1]: Leaving directory `/home/user/lazarus/packager/registration'
make: *** [registration] Error 2

Nem találja a process unitot, pedig fel van telepítve: /usr/lib/fpc/2.6.0/units/i386-linux/fcl-process/process.ppu és a forrás is: /usr/share/fpcsrc/2.6.0/packages/fcl-process/src/process.pp. A megoldás kicsit lejjebb, most kezdjük nulláról:

Lazarus URL rövidítés

A TinyUrl ingyenes szolgáltatásával a hosszú URL-eket lerövidíthetjük, amiket pl. Twitter üzenetekben felhasználhatunk.

A szolgáltatás használatához a következő linket kell meghívni: http://tinyurl.com/api-create.php?url=ide-jön-a-hosszú-url, majd a válaszban megkapjuk a rövidített URL-t:

Lazarus Build profilok

A Lazarus képes önmagát lefordítani, a fordítás beállításait a Tools/Configure "Build Lazarus..." menüben tehetjük meg. A párbeszédablakban beállíthatók, hogy fejlesztő környezet mely részei, milyen paraméterekkel legyenek lefordítva. A korábbi beállító ablak eléggé átláthatatlan volt, hogy finoman fogalmazzak akkor a használhatóság tekintetében erős kihívásokkal küszködött.

Lazarus - Delphi konverter fejlesztések

A Lazarus Delphi konvertere az elmúlt pár hónapban sokat fejlődött. A fő funkciók implementálásra kerültek, a legtöbb beállítás párbeszédablakon keresztül konfigurálható. Minden beállítás a Lazarus konfigurációs könyvtárában, a delphiconverter.xml fájlban kerül tárolásra.

A beállító ablak:

A beállításokról bővebben ezen a wiki oldalon lehet olvasni: Delphi Converter in Lazarus

Néhány főbb jellemző:

Címkék: 

Lazarus 0.9.29 fejlesztői verzió Ubuntu Linuxon

A Lazarus 0.9.28-as stabil kiadása már egy kicsit öregnek mondható (2009. októberi) és azóta számos újdonság került a fejlesztői 0.9.29-es verzióba. Ha Ubuntu Linuxon szeretnénk használni a Lazarus legfrissebb fejlesztői változatát, akkor csak a szintén nem túl friss, 2010.06.21-i változatból vannak deb csomagok. Ha ezeket letöltjük, majd telepítjük, akkor a fordító nem fog működni. Valami baja van az erőforrások fordításával.

Ahelyett, hogy kibogoztam volna, hogy mi lehet a hiba oka, inkább valami más megoldást találtam: letöltöm a Lazarus forráskódját, majd fordítsok belőle magunknak futtatható fejlesztő környezetet.

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 initialization ré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 TList osztá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 a TList-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 initialization részre)
  • Kevesebb memória használat
  • Egységes erőforrás kezelés minden platformon

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:

Oldalak