AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennung
Thema durchsuchen
Ansicht
Themen-Optionen

[Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennung

Ein Thema von MagicAndre1981 · begonnen am 20. Aug 2007 · letzter Beitrag vom 18. Apr 2016
Antwort Antwort
Seite 6 von 6   « Erste     456   
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 25. Feb 2009, 22:30
schalte in der IDE die Option "Bei Delphi Exceptions stoppen" ab. Ja die Funktion brauche ich sonst kann man nicht zwischen den SP Versionen bei Vista unterscheiden. Den Eintrag gibts bei XP nur bei Betas, frag mich nicht warum die MS mal einbaut und mal nicht.
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
316 Beiträge
 
Delphi 12 Athens
 
#2

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 26. Feb 2009, 11:05
Zitat von MagicAndre1981:
schalte in der IDE die Option "Bei Delphi Exceptions stoppen" ab.
Das würde ich gerne vermeiden.

Hier ein Vorschlag, wenn es keinerlei Betaversionen/Builds auf dem Rechner ist:

Delphi-Quellcode:
    function GetRevisionFromBuildLabEx(): DWORD;
    var
      sp : TStrSplitter;
    begin
      // begin changed by Christoph
      if (BuildLabEx = '') then begin
        Result := MAXDWORD;
        Exit;
      end;
      // end changed by Christoph
      sp := TStrSplitter.Create;
      try
        try
          sp.Execute(BuildLabEx,'.');
          Result := StrToInt( sp[1] );
        except on E: EConvertError do
          Result := MAXDWORD;
        end;
      finally
        FreeAndNil(sp);
      end;
    end;
Gruß,
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 15. Jun 2009, 10:33
Zitat von MagicAndre1981:
TWindowsVersionsInfo - Kompo zur Windowserkennung
Da mehrfach danach gefragt wurde hab ich mal die Windowserkennng in eine Klasse gepackt, die per Direktive auch als VLC-Kompo auf die Form geklatscht werden kann.
Hallo,
Die TWindowsVersionsInfo finde ich gut. Ich habe sie in einem kleinen Testprogramm benötigt.

Bei der Benutzung sind mir aber ein paar Kleinigkeiten aufgefallen:
  • Ich finde es immer besser einen Fehler zu vermeiden als auf ihn reagieren zu müssen.
    Wenn Du einen EConvertError erwartest weil sp[1] = '', warum prüfst Du denn nicht vorher auf einen korrekten Wert?
    Besser noch Du schaust Dir an wie IntToStr funktioniert und verwendest Val.

    Ich hätte es wahrscheinlich ja gar nicht bemerkt, aber der Delphi Debugger bleibt natürlich immer bei einer Exception stehen. ( -> sehr nervig und unnötig)

    Delphi-Quellcode:
    ...
    // Deine Funktion
    function GetRevisionFromBuildLabEx(): DWORD;
    var
      sp : TStrSplitter;
    begin
      sp := TStrSplitter.Create;
      try
        try
          sp.Execute(BuildLabEx,'.');
          Result := StrToInt( sp[1] );
        except on E: EConvertError do
          Result := MAXDWORD;
        end;
      finally
        FreeAndNil(sp);
      end;
    end;
    ...

    // Mein Vorschlag
    function GetRevisionFromBuildLabEx(): DWORD;
    var
      sp : TStrSplitter;
      E: Integer;
    begin
      sp := TStrSplitter.Create;
      try
        sp.Execute(BuildLabEx,'.');
        Val(sp[1], Result, E);
        if E <> 0 then Result := MAXDWORD;
      finally
        FreeAndNil(sp);
      end;
    end;
    ...
    [edit]
    Ups, ich sehe gerade, dass dieses Problem schon jemand anderes gepostet hat. (Ich hätte nicht nur den 1. Beitrag lesen sollen). Trotzdem ist mein Vortschlag besser als das if str = '' then ...
    [/edit]


    nonVCL
    Du bietest die Option an mit dem Schalter {.$define USE_VCL} nur ein TObjekt statt einer Komponente zu benutzen.
    Die Idee ist super, Du benötigst dann kein Classes und kein Controls und bist damit quasi nonVCL.
    Delphi-Quellcode:
    uses
      SysUtils,
    {$IFDEF USE_VCL}
      Classes, Controls,
    {$ENDIF}
      Windows ;
    Aber Du bist nicht konsequent. Du verwendest die Unit cruStrSplitter, die natürlich Classes einbindet.
    Damit hast Du dann wieder die ganze VCL eingebunden.

    Lösungsvorschlag:
    Nenne Deinen Kompilerschalter einfach um in USE_TCOMPONENT.
    Dann kann sich niemand beschweren.

    oder besser:
    Überarbeite die cruStrSplitter, das diese auch nonVCL wird. Die kleinen *.exe Dateien werden es Dir danken

Ich hoffe diese Infos helfen Dir dein Projekt noch besser zu machen.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 15. Jun 2009, 12:23
danke für deine Anregungen, ich schau mir das mal an.
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 15. Jun 2009, 17:41
Zitat von MagicAndre1981:
danke für deine Anregungen, ich schau mir das mal an.
Ich hab mir das auch noch mal angeschaut.

Du verwendest den cruStrSplitter ja nur um aus String wie '123.456.789.0' die Zahl 456 zu bekommen.
Das geht auch mit Copy und Pos(Ex).
  • Pos bestimmt die Position eines SubStr in einem Str.
    Mit i := Pos('.', BuildLabEx); steht in i die Stelle an der der 1. Punkt steht. Bei 123.456.78... ist das 4
    PosEx bestimmt die Position eines SubStr in einem Str ab der x. Stelle (Offset).
    Mit PosEx('.', BuildLabEx, i) bestimmst Du also wie weit der 2. Punkt nach dem 1. steht.
    Bei 123.456.78 mit Offset 4 ist das 4
    Copy(s,x,y) gibt Dir einen SubStr ab der x. Stelle mit der Länge y zurück.

    Copy(BuildLabEx, i+1, PosEx('.', BuildLabEx, i)-1);
    -> i+1 ist das 1. Zeichen nach dem 1. Punkt
    -> PosEx('.', BuildLabEx, i)-1 ist die Länge des SubStr bis zum 2. Punkt. (-1 da der Punkt ja nicht im SubStr enthalten sein soll)
    -> Gibt also '456' zurück

    Glücklicherweise gibt Pos und PosEx eine 0 zurück wenn nichts gefunden wird.
    -> Copy(s, 1, -1) gibt dann einen Leerstring zurück ''
Delphi-Quellcode:
...
    // Vorschlag ohne StrSplitter Objekt
    function GetRevisionFromBuildLabEx: DWORD;
    var
      s: string;
      i: Integer;
      E: Integer;
    begin
      i := Pos('.', BuildLabEx);
      s := Copy(BuildLabEx, i+1, PosEx('.', BuildLabEx, i)-1); // PosEx ist in Unit StrUtils
      Val(s, Result, E);
      if E <> 0 then Result := MAXDWORD;
    end;
...
Damit kannst Du dann ganz auf dieses Objekt verzichten und bist wieder nonVCL.
Es dürfte auch etwas schneller sein als das Splitter Objekt.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 15. Jun 2009, 21:18
danke, das bau ich dann ein

dann kommt noch die Windows 7 / Vista Sp2 / Server 2008 (neue Editionen) Erkennung und dann gibts bald wieder ein Update.
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 17. Jun 2009, 14:36
Zitat von MagicAndre1981:
danke, das bau ich dann ein
Gern geschehen.

Das ist jetzt etwas offtopic, aber

http://www.levenez.com/windows/redir...ndows_pdf.html

bzw.

http://www.levenez.com/windows

Viel Spaß
MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennun

  Alt 1. Dez 2009, 11:29
Zitat von MagicAndre1981:
danke, das bau ich dann ein

dann kommt noch die Windows 7 / Vista Sp2 / Server 2008 (neue Editionen) Erkennung und dann gibts bald wieder ein Update.
Hi MagicAndre1981,

die Komponente ist echt Super, aber die Frage wäre ob du schon die Zeit gefunden hast die neusten Versionen einzupflegen und ein
Update der Komponente bereitstellen kannst.

Vielen dank

TUX
  Mit Zitat antworten Zitat
WojTec

Registriert seit: 17. Mai 2007
482 Beiträge
 
Delphi XE6 Professional
 
#9

Re: [Kompo] TWindowsVersionsInfo - Kompo zur Windowserkennung

  Alt 6. Mär 2013, 18:34
This is very very nice class, but don't support latest Windows. Do you plan update?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz