HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Mennyi idő alatt fejlesztünk ki egy-egy alkalmazást?


Példaprogram letöltése

7823 bájt

Az idei év 8. számában készítettünk egy olyan Delphi kiegészítést, ami számolta, hogy az éppen szerkesztett project-et hányszor nyitottunk már meg. Most ezt egy kicsit továbbfejlesztettük úgy, hogy azt az időt is méri, ameddig a project nyitva van. Ezzel lehetőségünk van megnézni, hogy egy adott project-tel összesen mennyi ideig foglalkoztunk az elkezdésétől a befejezéséig.
Ez a cikk úgy készült, hogy feltételezzük "Delphi továbbfejlesztése: project megnyitások számlálása" című cikk ismeretét, ezért csak a különbségekkel foglalkozunk.

A project lefordítása után a ProjectCounter2.dll-t úgy telepíthetjük, hogy a mellékelt Delphi4.reg illetve Delphi5.reg fájlokban átírjuk az elérési útvonalat arra, ahol a dll fájl található, majd telepítsük a bennük lévő információt a regisztrációs adatbázisba. A Delphi újraindítása után létrejön egy Animare menü (ha még nem volt), és ebben egy "Project open counter…" menüpont, aminek kiválasztásával megnézhetjük, hogy hányszor nyitottuk meg az adott projectet, és az összesen mennyi ideig volt nyitva.

Lényeges különbség a TProjectCounterNotifier eljárásban van, ezért ezt részletesen is ismertetjük.
Az új feladat a következő: a project megnyitásakor kiolvassuk a Registry-ből, hogy az adott project eddig összesen mennyi ideig volt megnyitva, és azt eltároljuk egy változóban. Amikor a project-et bezárjuk, akkor ehhez a változóhoz hozzáadjuk a legutolsó megnyitás óta eltelt időt, és ezt eltároljuk a Registry-ben. Amikor megnyitjuk a Project Counter ablakát, akkor abban folyamatosan látni fogjuk az aktuális időtartamot. Ha a project futtatása közben a rendszer lefagy, tehát nem a normális módon záródik be a project, akkor az utolsó időtartam elveszik!

A NotifyCode paraméterben megkapjuk az esemény azonosítóját. A project megnyitása után ez fnProjectOpened, míg a bezárásakor fnProjectClosing. Ha az előbbi esemény következik be, akkor a Form2 FLastTime változójába kiolvassuk a Registry-ből az eddig eltelt időt. Ezt az értéket úgy azonosítjuk, hogy a project fájl nevéhez hozzáfűzzük a "Time" sztringet. A Form2.FCurrentTime változóban eltároljuk az aktuális időpontot, amire az eltelt idő kiszámításánál lesz szükség. Mivel furcsa módon előfordulhat, hogy a project bezárásakor nem ugyanazt a fájlnevet kapjuk meg, amit a project megnyitásakor, ezért ezt is eltároljuk a Form2.FProjFileName változóban.

A project bezárásakor az eltárolt értékekből és az aktuális időpontból kiszámoljuk az összesen eltelt időt, és eltároljuk azt a Registry-be.
    fnProjectClosing: begin
      with TRegistry.Create do begin
        Form2.Timer1.Enabled:=false;
        OpenKey(REGKEY, true);
        WriteTime(Form2.FProjFileName+'Time', (Form2.FLastTime+(Time-Form2.FCurrentTime)));
        CloseKey;
        Free;
      end;
    end;
A Form2-n elhelyeztünk egy TTimer komponenst, aminek OnTimer eseményénél folyamatosan frissítjük az eltelt időt:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
  Label5.Caption:=TimeToStr(FLastTime+Time-FCurrentTime);
end;

Cikksorozat

#IDKategóriaCikk címeSorozat
1063DelphiInterbase 6 alkalmazása Delphi-ben1. rész
1072DelphiInterbase 6 alkalmazása Delphi-ben2. rész
1084DelphiInterbase 6 alkalmazása Delphi-ben3. rész
1092DelphiTIBTable komponens4. rész
1102DelphiTIBTransaction komponens5. rész
1111DelphiTIBQuery komponens6. rész
1120DelphiTIBStoredProc komponens7. rész
1128DelphiTIBDataSet komponens8. rész
1141DelphiTIBSQL komponens9. rész
1150DelphiTIBSQLMonitor komponens10. rész
1159DelphiTIBUpdateSQL komponens11. rész
1167DelphiIBEvents komponens12. rész
1177DelphiIBDatabaseInfo komponens használata13. rész
1183DelphiTIBConfigService komponens14. rész
1192DelphiTIBSecurityService komponens15. rész
1204DelphiTIBServerProperties komponens16. rész
1213DelphiTIBBackupService komponens17. rész
1222DelphiTIBRestoreService komponens18. rész
1231DelphiTIBValidationService komponens19. rész
1240DelphiTIBStatisticalService komponens20. rész
1249DelphiTIBLogService komponens21. rész
1258DelphiTIBUninstall komponens22. rész
1267DelphiInterBase Express komponenscsomag23. rész


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