Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi 4 -> Delphi 2006 Enterprise (https://www.delphipraxis.net/82377-delphi-4-delphi-2006-enterprise.html)

HolgerCW 12. Dez 2006 08:49


Delphi 4 -> Delphi 2006 Enterprise
 
Hallo zusammen,

weiss hier jemand, ob man Projekte aus Delphi 4 in Delphi 2006 ohne Einschränkungen weiterentwickeln kann ?

Gruss

Holger

Bernhard Geyer 12. Dez 2006 08:51

Re: Delphi 4 -> Delphi 2006 Enterprise
 
Wenn Du bei Win32 bleibst sind die üblichen Probleme bei Wechsel der IDE-Version zu erwarten:

- 3th-Party Komponenten nicht verfügbar
- Keine Anpassung an Units möglich da keine Pas-Files vorhanden

Phoenix 12. Dez 2006 08:54

Re: Delphi 4 -> Delphi 2006 Enterprise
 
Zitat:

Zitat von HolgerCW
Hallo zusammen,

weiss hier jemand, ob man Projekte aus Delphi 4 in Delphi 2006 ohne Einschränkungen weiterentwickeln kann ?

Hrm. Kommt drauf an ;-)

1.) Zwischen D4 und D6 gab es eine Umstellungen in den VCL-Units. Diese wirst Du auf jeden Fall nachziehen müssen.

2.) Es kann sein, dass Du geringfügige Änderungen am Code machen musst, wenn der Compiler meckert. Das sollte sich aber in Grenzen halten.

3.) Hast Du von allen im Projekt verwendeten Komponenten den Source oder aber erhältst Du vom Anbieter auch eine BDS 2006 - Version?

Ich denke Punkt 3 ist der größte Knackpunkt. Gibts Deine verwendeten Komponenten nicht mehr für D2006 wirst Du Probleme bekommen.

Das einfachste wird aber sein, wenn Du Dir eine VM schnappst, dort die BDS 2006 Architect TRIAL hineininstallierst (gibts hier: http://www.borland.com/downloads/download_delphi.html) und dann einfach ausprobierst obs klappt.

HolgerCW 12. Dez 2006 09:32

Re: Delphi 4 -> Delphi 2006 Enterprise
 
Vielen Dank schon mal für die Informationen,

dann werde ich mal schauen wie es wird.

Jetzt weiss ich ja wie ich mir im Extremfall helfen kann ...

Gruss

Holger

MaBuSE 12. Dez 2006 09:44

Re: Delphi 4 -> Delphi 2006 Enterprise
 
Zitat:

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
    Delphi-Quellcode:
    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.

DMW 12. Dez 2006 19:59

Re: Delphi 4 -> Delphi 2006 Enterprise
 
Zitat:

Zitat von MaBuSE
VER150 = Delphi 7.0 / C++ Builder 7.0

Hab ich da was verpaßt? :mrgreen:

MaBuSE 13. Dez 2006 06:50

Re: Delphi 4 -> Delphi 2006 Enterprise
 
Zitat:

Zitat von DMW
Zitat:

Zitat von MaBuSE
VER150 = Delphi 7.0 / C++ Builder 7.0

Hab ich da was verpaßt? :mrgreen:

Ich arbeite ausschließlich mit Delphi, ich habe die Infos aus dem jedi.inc File ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 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