Avatar billede mtj111 Novice
17. juli 2009 - 17:15 Der er 12 kommentarer og
1 løsning

Opgradering af komponent (til Delphi 2005)

Hej

Jeg har brug for at aflæse Windows' Performance Counters, og det eneste praktiske jeg kan finde er komponentsættet PerfUtils: http://www.aldyn.ru/products/perfutils/index.html

Den nyeste kompatible version er dog Delphi 6, og den er ikke glad for at blive installeret i Delphi 2005 :(

Jeg åbner først vclPerfUtils6.dpk i RunTime-mappen og "builder" den.
Derefter går jeg i DesignTime-mappen og åbner dclPerfUtils6.dpk, og her begynder det.

Først klager den sig over følgende (i alle .pas-filerne):
  uses
    {$IFDEF VER140}
    DesignIntf, DesignEditors, DesignWindows, DsnConst,
    {$ELSE}
    DsgnIntf,
    {$ENDIF}
Da Delphi 6 var version 140, retter jeg det bare til 170 (Delphi 2005).

Derefter siger den "Class TPerfCounters not found" med Ignore, Cancel og Ignore All som valgmuligheder.
Her har jeg prøvet både Cancel og Ignore.

Ved Cancel kan den compile, men når jeg trykker Install brokker den sig om at den ikke kan finde en bpl-fil.

Ved Ignore siger den bagefter "Field ObjectKeyPropertyForm.PerfCounters does not have a corresponding component. Remove the declaration?".

Er der nogen, der kan hjælpe mig med at installere komponenterne?
:)
Avatar billede Slettet bruger
17. juli 2009 - 19:16 #1
Hvad med at downloade componenten til Delphi 5 ???
http://www.aldyn.ru/products/perfutils/download.html
Avatar billede hrc Mester
17. juli 2009 - 19:40 #2
Nu var det altså ikke delphi 5, men delphi 2005 (stakkels mtj111). Komponent-installation er noget man næsten skal sidde ved maskinen for at kunne hjælpe med.

Jeg vil gerne prøve installere den på den Delphi test-version jeg har liggende.
Avatar billede Slettet bruger
17. juli 2009 - 20:09 #3
Hmm, nå ja. Hvis du har alle sourcefiler *.pas har du prøvet at includre de foldere/kataloger som Delphi kan søge i under kompilering - typisk det er der det går galt. Ellers så er der kun windows perf API tilbage, men det er heller ikke så vanskeligt.
Avatar billede mtj111 Novice
17. juli 2009 - 20:13 #4
Ja, jeg lider skam også med den lettere ustabile Delphi 2005, men det er desværre den nyeste Delphi, som er gratis :P

Jeg har forsøgt at tilføje mapperne, så Delphi kan søge dem igennem - desværre intet held.

Dejligt at du vil prøve at installere dem på din Delphi text-version :) Det er jeg rigtig glad for!
Avatar billede hrc Mester
17. juli 2009 - 21:05 #5
Versionen er Weaver, eller den kommende 2010. Vi er et bundt interesserede der har fået lov til at lege med på udviklingen.

Har fået installeret komponentpakken - og det var egentlig ret let ... men da 2009+ er unicode røg jeg ind i en masse komplikationer her. Pakken blev dog installeret men fejler fordi den render en unicode-streng igennem og tror det er en ansistring.

Jeg gjorde følgende:
1. Kopierede pakken til et katalog i programmer-mappen. Jeg kopierede filerne til CodeGear-mappen.

2. Hentede runtime-dpk'en ind og buildede og rettede indtil den blev oversat.

3. Gik ind i options og tilføjede DesignTime og RunTime-mapperne i "search" delen

4. Oversatte herefter designtime-pakken hvor jeg på tilsvarende måde rettede og buildede indtil tingene kunne installeres.

Egentlig ret ligetil. Komplikationerne der gør at det ikke virker hos mig er, skyldes Unicode-problematikken.
Avatar billede mtj111 Novice
17. juli 2009 - 21:45 #6
Hej

Mange tak for din lille guide - det vil dog stadig ikke helt virke i min Delphi.

Rettede du også det med
  uses
    {$IFDEF VER140}
    DesignIntf, DesignEditors, DesignWindows, DsnConst,
    {$ELSE}
    DsgnIntf,
    {$ENDIF}
?

Det retter jeg nemlig i alle filerne (enten skriver jeg 170 i stedet for, eller også sletter jeg if'erne så kun de 4 uses står tilbage).

Til sidst (når jeg prøver at builde) siger den:
http://www.webm.dk/2009-07-17_213441.png

Når jeg trykker på Ignore og builder igen siger den:
http://www.webm.dk/2009-07-17_213633.png

Ved du hvad det kan skyldes?
Avatar billede hrc Mester
18. juli 2009 - 15:11 #7
Nej. Jeg slettede så der kun var en linje tilbage:

    [s]{$IFDEF VER140)[/s]
    DesignIntf, DesignEditors, DesignWindows, DsnConst,
    [s]{$ELSE}[/s]
    [s]DsgnIntf,[/s]
    [s]{$ENDIF}[/s]

Det måtte jeg gøre i 6-7 filer. Det glemte jeg vist at forklare. Beklager.

... og hvis eller Eksperten var implementede alle de gængse BB tags så ville de slettede linjer være streget over.
Avatar billede arne_v Ekspert
18. juli 2009 - 19:09 #8
Hvorfor bruge tid på at få en komponent til at virke fremfor at gøre det direkte ?

Performance counters kan hentes både med WMI og met et Win32 API.
Avatar billede hrc Mester
18. juli 2009 - 20:01 #9
arne: Sikkert fordi vi ikke vidste det.
Avatar billede mtj111 Novice
18. juli 2009 - 20:51 #10
Jeg prøvede at følge dette eksempel (før jeg bestemte mig for at prøve førnævnte komponent):
http://w-shadow.com/blog/2009/04/17/per-core-cpu-usage/

Det benytter dog desværre Jedi API library, som jeg heller ikke kan få til at virke.

Ellers kan jeg ikke rigtig finde nogle Delphi-eksempler på hvordan man bruger Performance Counters. Har du eller kan du finde nogle eksempler?
Jeg synes virkelig, at jeg har gennemgooglet det hele uden held.

Venlig hilsen,
Michael
Avatar billede mtj111 Novice
04. august 2009 - 17:53 #11
Jeg prøver lige at oprette en ny tråd om Performance Counters.

Så det er pointtid her!
jape44, hrc og arne_v: læg et svar :)
Avatar billede arne_v Ekspert
10. august 2009 - 00:57 #12
ok
Avatar billede mtj111 Novice
21. august 2009 - 19:06 #13
jape44, hrc: Læg et svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester