Entwickler-Ecke

Andere .NET-Sprachen - Delphi 8 VS System.POS


Passer - Fr 15.10.04 18:07
Titel: Delphi 8 VS System.POS
Nabend Xperten,
zuerst sei zugegeben, dass ich mir nicht socher bin, ob dies hier der richtige Unterbereich ist und ob mein Problem nicht vielleicht schon an anderer Stelle ausführlich diskuttiert wurde (wenn ja, wäre ein Verweis auf diese Stelle ganz nett).

Nun aber zu meinem Problem.

Ich wurde damit beauftragt bei uns an der Uni die Delpji 7 rechner auf Delphi 8 zu Upgraden. Das war auch kein grösseres Problem (ausser, dass ich auf 20 Rechnern einiges nachcompilieren musste.

Nun denn, als ich fertig war, versuchte ich ein paar alte Projekte zu Öffnen und auszuführen und kriegte auch gleich einen Sack voll Fehlermeldungen bei trivialstBefehlen:
Zitat:
[Warning] Proj_pr3.dpr(7): Unit 'Borland.Vcl.Forms' is specific to a platform
[Warning] prop_p03.pas(6): Unit 'Borland.Vcl.Windows' is specific to a platform
[Warning] prop_p03.pas(6): Unit 'Borland.Vcl.Messages' is specific to a platform
[Warning] prop_p03.pas(6): Unit 'Borland.Vcl.Graphics' is specific to a platform
[Warning] prop_p03.pas(6): Unit 'Borland.Vcl.Controls' is specific to a platform
[Warning] prop_p03.pas(6): Unit 'Borland.Vcl.Forms' is specific to a platform
[Warning] prop_p03.pas(6): Unit 'Borland.Vcl.Dialogs' is specific to a platform
[Warning] prop_p03.pas(7): Unit 'Borland.Vcl.StdCtrls' is specific to a platform
[Error] prop_p03.pas(32): Unsupported language feature: 'destructor'
[Error] prop_p03.pas(104): Undeclared identifier: 'MOVE'
[Error] prop_p03.pas(164): Undeclared identifier: 'Create'
[Fatal Error] Proj_pr3.dpr(7): Could not compile used unit 'prop_p03.pas'

Die obereb kann ich mir ja noch einigermasse erklären, denn das ursprüngliche Projekt war ein Window-Form-Objekt und kein VCL Objekt, woraus sich auch gleich meine erste Frage ergibt:

1) Wie kann ich alte WindowForm Projekte als genau solche in Delphi 8 importieren

Die restlichen Fragen ergeben sich aus den restlichen Meldungen:

2) Warum kann man seit Delphi 8 keinen Destructor mehr definieren

3) Warum gehen trivialstStringoperationen wie "MOVE( s[i + 1], s[1], size);" oder " a_daten := DatenAusgabe.Create;" nicht mehr.

Vielleicht wäre es an dieser Stelle ganz angebracht mir verzweifelten einen Link vor den Kopf zu stossen, was sich von Delphi 7 zu Delphi 8 geändert hat (http://www.delphi-source.de/grundlagen/dotnet/ hat mir leider nicht wirklich weitergeholfen)

Ich enrichte schonmal meinen herzlichsten Dank an alle Helfenden

MfG
Passer


AndyB - Fr 15.10.04 20:18

Delphi 8 ist die .NET Variante von Delphi. Delphi 7 ist für Win32 und läuft nativ auf dem Prozessor. Delphi 8 erzeugte Programme laufen nicht direkt auf dem Prozessor, sondern in einer virtuellen Maschine.

Um es klar auszudrücken: Delphi 8 ist nicht das "Update" für Delphi 7, sondern ein ganz neues Konzept. Borland hat einiges gemacht, um die Delphi Syntax nicht gravierend verändern zu müssen, aber einige Änderungen sind durch die .NET Umgebung bedingt. So besitzt .NET einen Garbage Collector, der für den Speicher zuständig ist. Deswegen gibt es auch keine wirklichen Destruktoren mehr. Und ein Befehl wie Move, der "wild" im Speicherherumschreibt, ist in einer Managed Environment nicht erlaubt und auch durch die MSIL (Assembler für die virtuelle Maschine) gar nicht möglich.


Passer - Fr 15.10.04 21:30

Danke, das hat mir weitergeholfen, sowas ähnliches hatte ich mir schon fast gedacht.

Ne kleine Frage bezüglich Delphi 2005:
BEsteht da die Hoffnung auf eine Delphi 7 Kompatibilität oder ists eher ein Delphi 8 Update???


MfG
Passer


AndyB - Sa 16.10.04 01:13

Delphi 2005 enthält ein Delphi Win32 und ein Delphi.NET. Delphi 2005 ist also ein "Update" für Delphi 7 und ein Update für Delphi 8.


sakura - Di 19.10.04 17:17

AndyB hat folgendes geschrieben:
Delphi 2005 enthält ein Delphi Win32 und ein Delphi.NET. Delphi 2005 ist also ein "Update" für Delphi 7 und ein Update für Delphi 8.

und ein Update für den C#Builder 1 :-)

Kurz in Delphi 2005 wirst Du all Deine alten Projekte von Delphi 1-8 öffnen können, sofern Du auch alle Erweiterungen für Delphi 2005 hast, die Du in den alten Projekten genutzt hast.

:welcome:


Passer - Di 19.10.04 20:20

Danke für die Antworten.

Irgendwie empfinde ich Delphi 8 als Abzocke seitens Borland.

für Delphi 7 haben wir zum Glück noch eine Lizenz gehabt. Auf den InstallationsCDs habe ich gar nicht nachgeguckt, mich hat nur gewundert, dass die englische Version eine, die deutsche 2 CDs hatte.

MfG
Passer


AndyB - Di 19.10.04 21:02

Passer hat folgendes geschrieben:
Irgendwie empfinde ich Delphi 8 als Abzocke seitens Borland.

Man sollte sich vielleicht vorher informieren, was Delphi 8 ist und nicht weil alle vorhergehenden Delphi Versionen abwärtskompatibel sind dies als gegeben voraussetzen. :wink:


Passer - Di 19.10.04 21:11

Nachher ist man immer schlauer...

aber allein die Tatsache, dass Delphi 8 ziemlich zwischengeschoben wirkt und in V9 ja wieder alles "beim alten" ist, wirkt auf mich fast wie eine ziemlich geldgierige Strategie von Borland.