Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi.NET für MS.NET 2.0 - Es geht :) (https://www.delphipraxis.net/65499-delphi-net-fuer-ms-net-2-0-es-geht.html)

sakura 17. Mär 2006 11:05


Delphi.NET für MS.NET 2.0 - Es geht :)
 
Hinweis: Der originale Beitrag ist hier zu finden: http://delphi-notes.blogspot.com/200...or-net-20.html

Bei einem Setup einer Make-File fiel mir gestern auf, dass der DCCIL Compiler (Delphi.NET Kommandozeilen Compiler) vom Borland Developer Studio 2006 einen Compilerschalter clrversion hat. Und er funktioniert, hier ein einfachstes Beispiel, der Rest ist dann Eure Sache ;)

Hier erst einmal der Code der DPR-Datei:
Delphi-Quellcode:
program SimpleSampleNET2;
{$APPTYPE CONSOLE}
uses
  System.Text;
begin
  System.Console.BackgroundColor := ConsoleColor.Blue;
end.
Zugegeben, nichts Spannendes, aber dennoch ist da etwas dabei, dass eine Consolenanwendung so unter .NET 1.1 nicht kann. Die Klasse Console unterstützt Hintergrundfarben erst ab .NET 2.0. Entsprechend dankt es uns der Delphi.NET Compiler mit folgenden Hinweisen:
Code:
[Pascal Error] SimpleSampleNET2.dpr(10): E2003 Undeclared identifier: 'BackgroundColor'
[Pascal Error] SimpleSampleNET2.dpr(10): E2003 Undeclared identifier: 'ConsoleColor'
[Pascal Error] SimpleSampleNET2.dpr(10): E2066 Missing operator or semicolon
.

Also los, ab zur Kommandozeile und das Ganze mal von Hand kompilieren. Ein erster Versuch sah bei mir so aus:
Code:
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
Der Compiler meldete Erfolg beim Laden vom .NET Framework Version 2.0.50727, leider aber konnte er die Unit Borland.Delphi.System für dieses Framework nicht finden. Diese muss also auch für .NET 2.0 kompiliert werden.

Kopiere die Datei $(BDS)\source\dotNet\rtl\Borland.Delphi.System.pas in das Verzeichnis der "komplexen" Konsolenanwendung und führe folgenden Befehl aus:
Code:
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config -Q -M -y -Z -$D- Borland.Delphi.System.pas
. Damit wird erfolgreich die System-Unit für .NET 2.0 kompiliert!

Jetzt noch einmal den ersten Befehl:
Code:
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
Und seht da, Delphi hat es erfolgreich kompiliert. Jetzt kurz mal das Ergebnis aufrufen und der Erfolg wird in der Kommandozeile sichtbar. Die Hintergrundfarbe hat sich geändert, vorausgesetzt, diese war nicht vorher schon in Blau. ;-)

Zum Test habe ich das Ganze in eine VM kopiert, welche nur das .NET 2.0 Framework hat (kein 1.1) und es läuft ohne Probleme. In einer VM mit ausschließlich .NET 1.1 läuft die Anwendung nicht korrekt, da diese die entsprechenden Eigenschaften nicht kennt ;-)

...:cat:...

Phoenix 17. Mär 2006 11:54

Re: Delphi.NET für MS.NET 2.0 - Es geht :)
 
:shock:

Daniel, Du bist ein Schatz! :love:

sakura 17. Mär 2006 11:57

Re: Delphi.NET für MS.NET 2.0 - Es geht :)
 
Zitat:

Zitat von Phoenix
:shock:

Daniel, Du bist ein Schatz! :love:

Eine Schüssel Brekkies ist jedenfalls immer willkommen :zwinker: Aber daran denken, Generics gehen davon noch nicht :mrgreen:

...:cat:...

Elvis 17. Mär 2006 12:09

Re: Delphi.NET für MS.NET 2.0 - Es geht :)
 
Zitat:

Zitat von sakura
Bei einem Setup einer Make-File fiel mir gestern auf, dass der DCCIL Compiler (Delphi.NET Kommandozeilen Compiler) vom Borland Developer Studio 2006 einen Compilerschalter clrversion hat.

Old car...
Schaue dir mal fast alle (brauchbaren) Quellen zum Thema CF + D.Net an... ;)

Sinnvoll ist das IMHO nur wenn man 2.0 Assemblies konsumieren will.
Du kannst ja mal testen ob er eine Klasse, die von einem generic erbt (also selbst nicht mehr generisch ist) verkraftet.
Wenn ja trifft der vorherige Satz sogar zu, alle Tests meinerseits ließen das ganze gehörig abrauchen, weshalb ich auch den Standpunkt D.Net <> .Net2.0 vertrete. ;)

Ralf Kaiser 13. Okt 2006 08:10

Re: Delphi.NET für MS.NET 2.0 - Es geht :)
 
Hallo,

ich habe das beschriebene mal ganz frech mit Delphi 2005 ausprobiert und es klappt auch!

Man muss dazu lediglich die Datei <DELPHI-BIN-VERZEIHNIS>\dccil.cfg" löschen (besser: umbenennen), da Delphi 2005 den Schalter "-no-config" auf der Kommandozeile nicht kennt.

Ansonsten wird das Programm auch mit D2005 genau wie beschrieben ohne Probleme erzeugt.

Ich dachte das interessiert eventuell jemand der auch noch mit D2005 arbeitet (oder arbeiten muss :wink: )

Ciao,
Ralf

Elvis 13. Okt 2006 08:46

Re: Delphi.NET für MS.NET 2.0 - Es geht :)
 
Zitat:

Zitat von Alfi001
ich habe das beschriebene mal ganz frech mit Delphi 2005 ausprobiert und es klappt auch!

Wie gesagt, old car. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz