Delphi - Futtatható állomány verzióinformációinak megszerzése programból

forráskód letöltése
Egy-egy futtatható alkalmazás, vagy akár DLL állománynak is lehetnek különféle verzióinformációi. Ez nem csak a verziószámot jelentheti, hanem akár a gyártó nevét, az állomány egyéb adatait is.

Ezt meg is tekinthetjük, ha egy Windows intézővel például egy EXE-n jobb gombbal kattintunk és megjelenő menüből a Tulajdonságok (Properties) menüpontot választjuk. Ekkor a megjelenő lapon a Verzió oldalon találhatók ezek az információk.

Ilyen információkat akár saját programunkban is elhelyezhetünk, ha a Project - Options - VersionInfo - Include version information in projectet választjuk és ott megadjuk a szükséges adatokat.

Ezeket az információkat a mellékelt TVersionInfo komponens segítségével egy tetszőleges állományból akár szerkesztési, akár futási időben igen könnyedén kinyerhetjük saját alkalmazásunkban, a teendőnk csupán annyi, hogy megadjuk, hogy melyik a kérdés állomány. A mellékelt példaprogram megnyitása előtt a VersionInfo.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A komponens használata igen egyszerű: adjuk meg a FileName property-ben a kérdés állományt és a szükséges adatok a többi property-ben máris láthatóvá válnak.

Ezek a további property-k annak ellenére, hogy a published részben deklaráltak, nem módosítható a tartalmuk. Valójában a public részben lenne a helyük, ennek ellenére még itt deklaráltuk őket. Gondoljuk csak bele: ha a public részbe tesszük őket, akkor igaz, hogy elegendő csupán olvasható property-ket létrehozni, ekkor viszont ha kíváncsiak vagyunk azok tartalmára, akkor mindenképpen programot kell írnunk hozzá, mivel szerkesztési időben igen nehéz egy public részben deklarált property tartalmának a megtekintése. Így viszont lehetőségünk van már a szerkesztési időben is megszemlélni egy-egy állomány verzióinformációit.

A komponens működéséről különösebben nem ejtenénk szót, hiszen ezzel a témakörrel már részletesen foglalkozott egy régebbi cikkünk (lásd: alábbi hivatkozás), bár igaz ott nem készült komponens, csupán egy olyan alkalmazás, mely képes volt a mostani komponens feladatainak ellátására.