![]() |
Delphi .NET Facts - was sich ändert
Hi DPler,
für alle die unter Euch, welche über den aktuellen Delphi-Tellerrand schauen möchten, hier mal eine vorläufige Liste der Dinge, welche mit Delphi.NET aus der Delphi Language verschwinden werden oder welche sich ändern. Diese Liste entstammt dem Buch Mastering Delphi 7 von ![]() Deprecated Typen
Also, wer will, kann auch schon jetzt auf diese Änderungen achten, dann wird die Umsetzung unter .NET einfacher ;-) ...:cat:... |
Da werden diejenigen schwer schuften müssen, die hardwarenah programmieren, mit Pointern auf Hardware-Adressen etc. zugreifen, oder knallhart den Speicher selber verwalten mit GetMem usw. :mrgreen: Dasselbe gilt für ASM Befehle. Da das vor allem unter C++ sehr beliebt ist, können die sich warm anziehen. Ich glaube Delphi macht da wesentlich weniger Probleme.
Mir ist das sowieso egal, weil solche Programmiertechniken nur Fehler produzieren (Bluescreens kommen viel durch so was), benutze ich das alles nicht. Das mit dem "FILE OF ..." gefällt mir weniger. Das braucht man schon mal. Meine schlimmste Befürchtung ist aber, daß in irgendeinem Programm in Zeile 1166 der Compiler streikt und keiner weiß (zumindest vorerst) warum, bzw. was wie anders gemacht werden muß. 8) Trotzdem ist keine Panik angesagt, die werden schon einigermaßen wissen, wo die Knackpunkte liegen und dementsprechend für Alternativen Sorgen. P.S.: jetzt habe ich die Frage vergessen: Du schreibst string wäre ein WideString, was ist das im Moment wenn man Zitat:
|
Moin sakura,
soll das alles eigentlich für Delphi Language oder Delphi Language for .NET gelten? |
Zitat:
Bei TDateTime wird es eine Menge Handarbeit, leider :wall: Da hilft nichts drumrum... ...:cat:... |
Zitat:
...:cat:... |
Moin sakura,
ich dachte nur daran, dass man im Visual Studio ja mit C# arbeiten kann, bei dem halt gewisse Einschränkungen gegeben sind, oder mit C++ wo das dann nicht der Fall ist. Man kann ja, wenn auch mit gewissen Verrenkungen, unter C# ganz normal die API Funktionen importieren und damit arbeiten, und die sich ja nicht gerade pointerlos. |
Zitat:
Ich denke, so sollte es heißen: Zitat:
|
Zitat:
Leider weiß ich den Grund nicht mehr, warum ich ein "^QA" Programm geschrieben habe, hört sich trotzdem langsam nach schlechtem Film an. Vieles wird anders oder entfällt, aber nun die entscheidende Frage: Was ist der Vorteil von dem Firlefanz :?: |
Zitat:
...:cat:... |
Zitat:
...:cat:... |
Also wird das wohl so laufen, wie mit dem alten String, der jetzt ein ShortString ist. Dann würde ^QA doch helfen, string würde durch ShortString ersetzt und alles wäre kompatibel. 8) Sieht trotzdewm schwer nach "Try and error" aus. Na ja, abwarten und Tee trinken.
|
Re: Delphi .NET Facts - was sich ändert
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zweites: Was kommt dan anstelle des @ ?? Zitat:
Amen. mirage228 |
Re: Delphi .NET Facts - was sich ändert
Hallo,
Zitat:
Grüsse, Daniel :hi: |
Hi,
wo außer im Zusammenhang mit Pointern wird denn in Delphi noch der @-Operator verwendet? Wenner wirklich nur bei Pointern verwendet wird, ist es dann nicht logisch dass er mit den Pointern verschwindet? Die Dinger (also die Pointer, nie die "@"s) konnt ich eh nie leiden... Aber file of <type> und BlockRead/-Write werden mir fehlen. Muss man dann komplett auf FileStreams oder die ShellBefehle umsteigen? Was mal recht interessant werden kann, sind die Methoden in Records. Haben die vielleicht deswegen die file of <type> abgeschafft, damit man das "Abspeichern von Methoden" umgehen kann? Naja, bezweifle ich mal. Aber ich würd ja gerne wissen... wo liegt denn dann der Unterschied zwischen einem Record und einer Klasse / einem Objekt? Muss man dann wirklich jeden blöden String als WideString deklarieren? Wenn der normale String in seiner "Beschaffenheit" doch sowieso abgeschafft wird (wird er das?), könnte man nicht einfach nen neuen String- Typen unter demselben Namen einführen? Is doch irgendwie schöner, oder? Bis dann, S - tefano |
Alles geraten, also kein Gewähr!
Zitat:
Zitat:
|
Hallo,
Zitat:
Und wenn man WideString schreiben muss, wer schriebt als erster im Forum ein Tool, das alle .pas auf dem Rechner durchgeht und String in WideString umschreibt? :mrgreen: :lol: Grüsse, Daniel :hi: |
Moin Daniel,
Du kannst heute in den Optionen einstellen, wie "string" interpretiert werden soll. Entweder als HugeString (AnsiString, Standard) oder ShortString (Pascal String). Künfig wird unter string standardmässige WideString verstanden, und die Optionen werden einem dann eventuell die Wahl zwischen drei Varianten lassen. |
Zitat:
|
Zitat:
...:cat:... P.S. Ich nutze schon jetzt WideStrings :mrgreen: |
Re: Delphi .NET Facts - was sich ändert
Kann mir einer sagen wie ich OHNE Zeiger
- einen Binären-Such-Baum aufbauen soll - verkettete Listen verwalten soll - große Variable Binär-Blöcke verwalten soll (z.B. von Bildern) Ich denke das .NET zusätzlich wie CLX entstehen wird, denn wie soll ich sonst Windows beeinflussen. Denn das Importieren von nicht .NET-Dll's ist nicht sauber und nicht Plattformunabhängig. |
Re: Delphi .NET Facts - was sich ändert
Also zu den Objekten, z.B. können die ja so aussehen
Delphi-Quellcode:
Jetzt wird aber das Object selbst wegfallen, allerdings hab ich gehört das man sowas wie dort oben auch mit Records realisierbar sein soll(Also Methoden z.B.).
type
TMeinObjekt = Object eigenschaft1 : string; procedure Hallo(var i,a,b: integer); end; Also so:
Delphi-Quellcode:
vorher wars ja nur möglich Prozeduren so in Records einzubauen:
type
TMeinObjekt = Record Eigenschaft1: string; procedure Hallo(var i,a,b: integer); end;
Delphi-Quellcode:
Korrigiert mich bitte wenn ich da was falsches sage.
type
TMeinRecord = Record eigenschaft1: string; Hallo: Procedure(var i,a,b: integer); end; Ich glaub das stand sogar in Ausgabe 4.2003 von Der Entwickler /Edit: Zitat:
|
Re: Delphi .NET Facts - was sich ändert
Kein Problem. ;-) Zum Thema object vs. class. Object kommt noch aus Turbo Pascal Zeiten (seit Version 5.5) und wird von Delphi nur aus Gründen der Kompatibilität unterstützt. Seit Version 1 von Delphi sollte man für alle neuen Klassen (und Objekte) mit class arbeiten.
...:cat:... |
Re: Delphi .NET Facts - was sich ändert
Hallo Sakura,
Ich bin am Überlegen von Turbo Pascal 7.0 auf Delphi 8 umzusteigen. Ich habe gelesen, dass auf der Delphi 8 (octane) auch die Delphi 7 Version beigelegt sein soll. Weisst du, ob auch Kylix 3 mit enthalten sein wird ? Desweiteren habe ich hier irgendwo gelesen, dass unter Delphi.Net der Befehl "File of..." nicht mehr unterstützt werden soll. Wie müsste untengenannter Record aus Pascal in Delphi umgeschrieben werden ? Bsp.
Delphi-Quellcode:
Danke im voraus für evtl. Info.
Type Datenbank_Spiel_77 = Record (* Super 6 - Nr. 1 *)
Nr : LongInt; Ziehung_I : Integer; Ziehung_S : String[7]; Datum : String[10]; Ziehungstag : String[2]; Ziehungsmonat : String[2]; Ziehungsjahr : String[4]; Spiel : String[8]; Spieltag : String[10]; S1 : Byte; S2 : Byte; S3 : Byte; S4 : Byte; S5 : Byte; S6 : Byte; S7 : Byte; end; Filetyp_2 = File of Datenbank_Spiel_77; Gruss, Tool-Box :) [edit=sakura]Delphi-TAGs eingefügt. Mfg, sakura[/edit] |
Re: Delphi .NET Facts - was sich ändert
Zitat:
Die liebe Frau am Borland-Telefon sagte unverbindlich Prinzipiell wird Kylix nicht zusammen mit Delphi 8 (Octane) ausgeliefert. Es wird zur Zeit jedoch darüber seniert, ob es unter Umständen eine Promotionaktion geben wird, zu welcher während der Einführung Kylix enthalten ist. Zitat:
Delphi-Quellcode:
...:cat:...
var
DbEntry: Datenbank_Spiel_77; FS: TFileStream; begin // Datei öffnen FS := TFileStream.Create('data.file', fmOpenReadWrite or fmShareDenyNone); try // read 3 data entry FS.Position := SizeOf(Datenbank_Spiel_77) * (3 - 1); FS.Read(DbEntry, SizeOf(Datenbank_Spiel_77)); ... // save at first position FS.Position := 0; FS.Write(DbEntry, SizeOf(Datenbank_Spiel_77)); finally // Datei schließen FS.Free; end; |
Re: Delphi .NET Facts - was sich ändert
Zwei Dinge:
1) Wie sieht es denn in Zukunft mit der nonVCL - Programmierung aus, wenn Zeiger, und Low-Level-Speicherverwaltung (GetMem, FreeMem, etc...) nicht mehr benutzt werden dürfen? 2)Wird es denn noch Befehle wie "LoadLibrary" und "GetProcAddress" geben? Ich meine, wenn Sie alles ausmerzen, was eine Plattformabhängigkeit schaffen könnte, dann gehört sowas doch leider auch dazu... Es wäre IMHO ein herber tiefschlag für Delphi, wenn man auf einmal keine der teilweise recht genialen, frei verfügbaren DLLs diverser Projekte nutzen könnte (libmysql.dll, bass.dll.. usw und so fort!) Gruß Wormid |
Re: Delphi .NET Facts - was sich ändert
Soweit ich weiß lassen sich mit .NET Dlls einbinden, allerdings nur sehr aufwändig. Wenn du DLLs benutzen musst, kannst du aber auch eine native Win32 (bzw. bald Win64??)-Anwendung erstellen.
|
Re: Delphi .NET Facts - was sich ändert
Zitat:
Zitat:
...:cat:... |
Re: Delphi .NET Facts - was sich ändert
hmmmm...sieht auf den ersten blick nicht tragisch aus. Nur... .NET ist ja (genaugenommen) platform abhängig, da es nur unter Win verfügbar ist (und ich nicht glaube das M$ hier nen Port auf Linux macht.. :mrgreen:). und somit stellt sich mir die frage was der Quark eigentlich soll ?
|
Re: Delphi .NET Facts - was sich ändert
Hallo
Zitat:
|
Re: Delphi .NET Facts - was sich ändert
irgendwie hört sich das .NET zeug mehr wien nachteil als vorteil an? oder täuscht das?
|
Re: Delphi .NET Facts - was sich ändert
Moin Silent,
ich würde das mal als Ansichtssache sehen. Ein Vorteil wäre, dass Du einzelne Module (Assemblys) verwenden kannst, ohne, dass Du Dich darum kümmern musst, in welcher .NET Sprache sie erstellt wurden. Ob diese mit C#, VB.NET oder z.B. Delphi.NET erstellt wurden, darf keine Rolle spielen. Die Idee mit der Plattformunabhängigkeit ist ja gut und schön, aber ich vermute mal, bevor das greifen kann existieren schon so viele plattformabhängige Programme, dass das schön daneben geht ;-) |
Re: Delphi .NET Facts - was sich ändert
Zitat:
Darum sehe ich noch keinen Sinn zu wechseln, da sowas viel besser noch mit einem Win32-Programm geht. Zitat:
Ich finde man versucht da auf brechen und biegen eine Neuerung den Leuten zu verkaufen, die noch nicht durchdacht ist. Bis jetzt findet sich .NET meiner Meinung nach im Teststatium. -> Man sollte sich damit Beschäftigen aber noch warten! Was nun entgültig herauskommt. |
Re: Delphi .NET Facts - was sich ändert
Hätte da auch noch zwei, für mich interssante, fragen:
Wird es RTTI einträge für records geben? Wird die RTTI auch parameterlisten der published methoden geben? mfg. maximov. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 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