HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Delphi projekteket fordító komponens készítése


Példaprogram letöltése

4446 bájt

Készítünk egy komponenst, amely segítségével egy megadott könyvtárban, valamint annak alkönyvtáraiban elhelyezkedő Delphi projekteket fordíthatunk le. Azt, hogy a dpr állományok fordítása melyik Delphi verziónak a fordítójával történjen, azt szintén mi állíthatjuk be.

A mellékelt példaprogram megnyitása előtt a DPRCompiler.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens egy megadott könyvtárban és annak alkönyvtáraiban keres dpr kiterjesztésű, Delphi projekt állományokat. A megtalált Delphi projekteket lefordítja.
A komponens Directory tulajdonságában kell megadni annak a könyvtárnak a nevét, amelyben keresni szeretnénk. Ha a SearchSub értékét igazra állítjuk, akkor a keresés az alkönyvtárakra is kiterjed.
A Compiler tulajdonságban kell megadnunk a fordítóprogram elérési útját és nevét. Ez például a Delphi 7 esetében, alapértelmezett telepítési beállításokkal a következő:
c:\Program Files\Borland\Delphi7\Bin\dcc32.exe
A Delphi 5 és 6 fordítóprogramja ugyanezzel a névvel rendelkezik.
Ha megadtuk a könyvtárat és a fordítót, akkor a Compile metódus meghívásával elkezdődik a megtalált projektek lefordítása. Természetesen csak olyan projekteket lehet lefordítani, amelyek nem tartalmaznak hibákat.
A komponenst a TComponent osztályból származtatjuk.
A Directory és a Compiler két String típusú property lesz, a SearchSub pedig Boolean típusú. Ezekkel a létrehozásukon kívül semmi egyéb rendkívüli teendők nincs.
A Compile metódus meghívásakor el kell indítanunk egy rekurzív függvényt, amely alkalmas arra, hogy alkönyvtárakban is keressen.
procedure TDPRCompiler.Compile;
begin
  if (FDirectory<>'') and (FCompiler<>'') then
    ScanFiles(FDirectory);
end;
A ScanFiles metódus
procedure ScanFiles(Dir: String);
A dpr állományok kereséséhez a FindFirst – FindNext párost használjuk. Ha a keresés során egy könyvtárat találunk és a SearchSub metódus értéke is igazra van állítva, akkor rekurzív módon meghívjuk a ScanFiles eljárást, melynek paramétereként a megtalált könyvtár nevét adjuk.
if FSearchSub and (F.Name[1]<>'.') then
  ScanFiles(Dir+F.Name);
Ha viszont egy Delphi projektet találtunk, akkor azt lefordítjuk.
if LowerCase(ExtractFileExt(F.Name))='.dpr' then begin
  ShellExecute(0,'open',PChar('"'+Compiler+'"'),PChar('"'+Dir+F.Name+'"'),PChar(Dir),SW_HIDE);
end;
A fordítóprogram futtatásához a ShellExecute, API függvényt használjuk fel. Ehhez, a uses listában fel kell sorolnunk a ShellAPI unit nevét is.
A ShellExecute függvényben külön paraméterben kell megadnunk a futtatandó programot és paramétereit. A futtatandó program a Compiler property-ben megadott program lesz, a paraméter pedig a megtalált dpr állomány elérési útja és neve. A függvény utolsó előtti paramétere (PChar(Dir)) azt a könyvtárat jelenti, ahová a lefordított exe állomány kerül. Az SW_HIDE paraméter hatására a fordítóprogram csak a háttérben fut.

Cikksorozat

#IDKategóriaCikk címeSorozat
1621DelphiMySQL szerverek elérése Delphi-ből1. rész
1632DelphiMySQL szerverek elérése Delphi-ből2. rész
1641DelphiMySQL szerverek elérése Delphi-ből3. rész
1649DelphiMySQL szerverek elérése Delphi-ből4. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 29. 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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |