AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 4 -> Delphi 2006 Enterprise

Ein Thema von HolgerCW · begonnen am 12. Dez 2006 · letzter Beitrag vom 13. Dez 2006
 
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: Delphi 4 -> Delphi 2006 Enterprise

  Alt 12. Dez 2006, 09:44
Zitat von HolgerCW:
weiss hier jemand, ob man Projekte aus Delphi 4 in Delphi 2006 ohne Einschränkungen weiterentwickeln kann?
Wir haben mit der Umstellung von Delphi 5 nach Delphi 7 deutlich mehr Probleme gehabt als bei Delphi 7 nach Delphi 2006.
Diese Probleme wirst Du dann warscheinlich auch haben.
Ichhabe mal eine Lister der häufigsten Probleme bei unserer Umstellung zusammengestellt:
Ich hoffe das hilft Dir weiter
mfg
MabuSE
  • Bedingte Kompilierung
    Du solltest Dir alle "bedingte Kompilierung"-Stellen anschauen.
    Oft wird z.B. {$IFDEF VERXXX} verwendet um Quellcode führ mehrere Kompiler anzupassen.
    Wenn nun ein "neuer" Kompiler dazukommt sollten diese Stellen angepasst werden.
    Oft sind diese VERXXX auch in *.inc Dateien ausgelagert. Es werden dann eigene Symbole z.B. Delphi5Up definiert.
    Also nach $IFDEF bzw. $IFNDEF suchen.
    • (unvollständige) Liste der Pascal (Delphi) Versionen:
      VER60 = Turbo Pascal 6.0
      VER70 = Borland Pascal 7.0
      VER80 = Delphi 1.0
      VER90 = Delphi 2.0
      VER93 = C++ Builder 1.0
      VER100 = Delphi 3.0
      VER110 = C++ Builder 3.0
      VER120 = Delphi 4.0
      VER125 = C++ Builder 4.0
      VER130 = Delphi 5.0 / C++ Builder 5.0
      VER140 = Delphi 6.0 / C++ Builder 6.0
      VER150 = Delphi 7.0 / C++ Builder 7.0
      VER160 = Delphi 8.0
      VER170 = Delphi 9.0 -> D2005
      VER180 = Delphi 10.0 -> D2006
  • zw. D5 und D6 haben sich einige Dinge bei der "Komponentenentwicklung" getan.
    -> Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.dcu
  • RtlConsts
    Einige Konstanten sind in die Unit RtlConst verschoben worden.
    Delphi-Quellcode:
    uses
      RtlConsts;

    // constants that are now in RtlConsts:
    // raise Exception.Create(ResStr(SLineTooLong));
    // raise Exception.Create(ResStr(SFOpenError));
  • Variants
    Einige Funktionen sind in die Unit Variants verschoben worden.
    Delphi-Quellcode:
    uses
      Variants;

    // functions now in Variants;
    // Result := not VarIsEmpty(FValue);
  • StrUtils
    Einige Funktionen sind in die Unit StrUtils verschoben worden.
  • DateTimeUtils
    Einige Funktionen sind in die Unit DateTimeUtils verschoben worden.
  • PSock
    Die Unit PSock enthält TPowersock, die Basisklasse der FastNet-Tools der Firma NetMasters. Die FastNet Tools werden bei Delphi 7 nicht mehr mitgeliefert und wurden schon in Delphi 6 durch die Indy Komponenten ersetzt.

    Alle Komponenten die mit TNM... Anfangen und in Units NM* definiert sind sollten zu den FastNet Komponenten gehören.

    In der Unit PSock sind neben dem Wrapper für den Winsock auch noch 3 String Funktionen definiert:
    • NthPos
    • NthWord
    • StreamLn
    Die Funktion NthPos wurde von mir nach Delphi 7 portiert, da sie in unseren Projekten verwendet wird.

    Auszug aus der Delphi 5 Onlinehilfe
    Funktion NthPos
    function NthPos(InputString: String; Delimiter: Char; Number: integer): integer; Beschreibung
    Die Funktion NthPos gibt die Position des angegebenen Auftretens des festgelegten Begrenzungszeichens zurück.

    Parameter:
    InputString = Der Parameter InputString enthält den zu untersuchenden String
    Delimiter = Der Parameter Delimiter gibt das Zeichen an, das als ein Trennzeichen zu verwenden ist
    Number = Der Parameter Number gibt das Vorkommen des Begrenzungszeichens an, von dem die Position zurückzugeben werden soll.

    Hinweis:
    Die Verwendung dieser Funktion erfordert nicht, daß beliebige der FastNet-Komponenten in einer Anwendung verwendet werden. Die Unit Psock muß jedoch in der Uses-Anweisung der Unit stehen, in der die Funktion verwendet wird.


    Portierung von NthPos auf Delphi 7:

    Delphi-Quellcode:
    unit PSock_D7;

    // Diese Unit ersetzt die PSock.dcu aus Delphi 5,
    // da diese in Delphi 7 nicht mehr mitgeliefert wird.
    // 01.02.2005 jma, mbd: Erste Version in "\merian\Devisenhandel\Komponenten\Source\Sonstige\PSock_D7.pas"

    interface
    {
      Deklaration
      function NthPos(InputString: String; Delimiter: Char; Number: integer): integer;

    Beschreibung
      Die Funktion NthPos gibt die Position des angegebenen Auftretens des
      festgelegten Begrenzungszeichens zurück.

    Parameter:
      InputString  = Der Parameter InputString enthält den zu untersuchenden String
      Delimiter    = Der Parameter Delimiter gibt das Zeichen an, das als ein
                    Trennzeichen zu verwenden ist
      Number      = Der Parameter Number gibt das Vorkommen des Begrenzungszeichens
                    an, von dem die Position zurückzugeben werden soll.

    Hinweis:
      Test mit D5 ergab:
        Number = 0 -> Result := 1
        number > Anz. Delimiter in String -> Result := length(InputStr)+1
    }

    function NthPos(InputString: AnsiString; Delimiter: Char; Number: Integer): Integer;

    implementation

    uses StrUtils;

    function NthPos(InputString: AnsiString; Delimiter: Char; Number: Integer): Integer;
    var
      i, j, k: Integer;
    begin
      i := 1;
      j := 0;
      k := 1;
      while (j < Number) and (i > 0) do
      begin
        i := PosEx(Delimiter, InputString, k);
        k := i + 1;
        Inc(j);
      end;
      if i = 0 then
      begin
        if Number = 0 then
        begin
          Result := 1
        end
        else
        begin
          Result := Length(InputString)+1;
        end;
      end
      else
      begin
        Result := i;
      end;
    end;

    end.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:24 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