|
|
Alkalmazás verziótörténet szerkesztő Delphi kiegészítés
|
|
Példaprogram letöltése
9776 bájt
|
Olyan alkalmazás valószínűleg nem létezik, amelyre ki lehetne jelenteni, hogy 100%-ig készen van. Néhány kisebb alkalmazás mellé általában mellékelnek egy ún. version history információs fájlt, amiben fel van sorolva, hogy az egyes verziók miben különböznek egymástól. Ebben a példában egy olyan Delphi kiegészítést készítünk, aminek segítségével könnyedén tudunk ilyen fájlt előállítani az éppen megnyitott project-hez.
A mellékelt példaprogram megnyitása előtt a heditor.dpk-t telepítenie kell a Delphi alá.
A fájl szerkezete leginkább egy TreeView komponensben jeleníthető meg. A gyökér elem maga az alkalmazás (project), ezért ebből csak egy lehet. Az ebből nyíló elemek az alkalmazás különböző verziói. Ezeken belül az egyes módosítások szerepelnek, és ezeket további elemekben bővebben is kifejthetjük. Új elemet úgy tudunk felvenni, hogy a szülő elemet kijelöljük, majd a New gombra kattintunk. A Save to .txt gombbal elmenthetjük a listát egy txt fájlba, méghozzá úgy, hogy a legutóbbi verzió van a fájl elején, és alatta a korábbi verziók információi. A listát egyébként is tárolni kell valahogy, ezért erről is gondoskodunk. A fájl neve a „projectnév.history” lesz.
Először is szükségünk lesz a Project nevére, amit a fájlnévből veszünk. Csakhogy ehhez a project fájl nevét meg kell tudnunk valahonnan. Ehhez a IOTAProject interfészre lesz szükség, aminek elérése elsőre bonyolultnak tűnhet. Először is a BorlandIDEService globális objektum felhasználásával szert teszünk egy IOTAModuleServices interfész objektumra:
var
Services: IOTAModuleServices;
...
Services := BorlandIDEServices as IOTAModuleServices;
Ebben az interfészben van egy Modules nevű tömb property, amin keresztül az aktuális project moduljait tudjuk elérni. A modulok számát a ModuleCount property-ből olvashatjuk ki. Egy ciklusban sorban lekérdezzük ezeknek a moduloknak az objektumát egy IOTAModule típusú objektumba:
var
Module: IOTAModule;
...
for i:=0 to Services.ModuleCount-1 do begin
Module:=Services.Modules[i];
Ha megvan az objektum, akkor ennek felhasználásával létrehozhatunk egy objektumot az IOTAProject interfészhez, aminek GetFileName függvényével lekérdezhetjük a project fájl nevét:
var
Project: IOTAProject;
...
if Module.QueryInterface(IOTAProject, Project)=S_OK then begin
ProjectName:=Project.GetFileName;
Ha ez is megvan, akkor már csak meg kell jelenítenünk a Form-ot, amiben a listát szerkeszthetjük. Ennek van egy Execute metódusa, aminek paraméterében megadjuk a project nevét.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 552. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|