AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Hallo mkinzler,
ja OK. Ich hatte mir so was wie die Interbase – Komponenten für Firebird und Interbase vorgestellt. Bei gekauften Komponenten wie z.B. FIBPlus geht das doch auch. Bis bald Chemiker |
AW: Delphi 2011 heißt jetzt Delphi XE
Man hat aber immer von dbExpress geredet. Zur Not geht es ja auch mit IBX.
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
OT : Wieso ist der Thread hier überhaupt noch auf ? 20 Seiten ? :shock: Von der DP Tradition her gesehen, müsste der schon längst eskaliert und geschlossen sein. Also so richtig eskaliert, komplett mit allem was dazugehört. :mrgreen: |
AW: Delphi 2011 heißt jetzt Delphi XE
@OT-Hansa: Weil sich hier mal alle (fast) einig sind?
|
AW: Delphi 2011 heißt jetzt Delphi XE
Glaube eher, das liegt an den Schulferien. Nächste Woche gehts wohl richtig zur Sache. Beleidigte User weg usw. :mrgreen:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Naja gut es gibt wohl doch Sachen neu seit Delphi 7, aber ich weiß leider nicht ob der FPC nicht vielleicht das schon implementiert hat, aber anderes noch nicht. Aber es ist nun mal so, dass der FPC wohl wesentlich schneller sich entwickelt als Delphi. MfG Fabian PS: Operatoren gibt es inzwischen auch für Klassen. PPS: Himitsu hat im ersten Link den Unterschied aufgezeigt. Der zweite Link liegt außen vor, da es mir wie gesagt nicht um die IDE geht, sondern um die Sprachtechniken. |
AW: Delphi 2011 heißt jetzt Delphi XE
Ja wenns um unsere (DP) existenz grundlage geht da werden auf einmal ganz freundlich und gehen hand in hand :D
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
FPC kennt auch Gnerics, aber lehnt sich hier eher an der Implementierung unter C++ an, währrend Delphi eher nach Java/C# schielt.
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Delphi-Quellcode:
gab's schon, aber die Enumerator-Klassen, welche z.B. für das For-In genutzt werden, wurden zusammen mit dem For-In eingeführt.
type myEnum = (a, b, c);
Zitat:
UTF-8 kann man ja quasi auf Ansi mappen. |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Da steht: Zitat:
Anstatt ihrer Sch**** SVN Integration, UML Designern (vor allen sie zeigen nur Reverse Engeneering, oder? Wen interessiert das? Das und viel mehr konnte Modelmaker schon vor Jahren) und sonstigem Fluff sollten sie mal die QC abarbeiten und derbe Fehler in der RTL/VCL fixen und die Generics endlich komplett benutzbar machen. Ich stoß dauernd an Stellen wo ich mir nur denke, toll in C# würd das gehen... Beispiel? Hab versucht, den CommonServiceLocator auf Delphi zu portieren:
Delphi-Quellcode:
Möööp! Interfaces unterstützen keine parametrisierten Methoden... :wall:
type
IServiceLocator = interface function GetInstance<TService>(): TService; end; |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
MfG Fabian |
AW: Delphi 2011 heißt jetzt Delphi XE
Das kann auch nicht/nie mit Objekten (Klassen) funktionieren, höchstens bei Interfaces wären es noch möglich.
Delphi-Quellcode:
Denn wer soll jetzt dafür sorgen, daß eine Klasse in A auch ordnungsgemäß freigegeben wird, wenn da nun eine neue Klaee als Rechenergebnis reinwöllte?
var A, B, C: TObject;
A := B + C; Speicherlecks ohne Ende. A einfach freizugeben geht auch nicht, da Delphi ja nich wissen kann, ob dieses Objekt noch wo anders in Verwendung ist. |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Nein, da Delphi keine automatische Referenzzählung bei den Objekten besitzt.
Delphi-Quellcode:
Wenn man jetzt einfach so die alte Zahl in C freigeben würde, dann wäre der Objektzeiger in D nun fehlerhaft, da man ihm das Objekt unterm Arsch geklaut hat.
C := TZahl.Create(789);
D := C; A := TZahl.Create(123); B := TZahl.Create(456); C := A + B; // function TZahl.Add(x, y: TZahl); // begin Result := TZahl.Create(x.num + y.num); end; WriteLn(C.num); Macht man mit dem alten Objekt in C nichts und dieses Objekt wäre sonst nirgendwo referenziert, dann entstünde ein Speicherleck. Mit Interfaces ist es also möglich, da man dort weiß wieviele Referenzen es auf die enthaltenen Objekte/Interfaces gibt und kann es somit freigeben. Bei Records ist garnichts nötig, da dort die Speicherbereiche direkt vorliegen (quasi ein RefCount von 1). Darum hab ich bei meinen MatheLibs auch in dem Record ein Interface gekapselt, da ich so die Vorteile eines Interfaces (Referenzzählung), mit den Operatoren der Records kombinieren konnte. |
AW: Delphi 2011 heißt jetzt Delphi XE
Dir ist schon klar, dass das nicht das Problem von operatoren auf Klassen ist sondern das des Programmierers, der hier lustig Objekte gegenseitig zuweist? Wenn per Definition ein Operator ein neues Objekt erzeugt ist allen klar, dass sie bei einer Zuweisung von a := b + c vorher a sichern oder freigeben müssten, wenn da was drin steht. Was hat das bitte mit Operatoren zu tun, das wäre bei jeder normalen Methode die ein Objekt zurück gibt genauso.
|
AW: Delphi 2011 heißt jetzt Delphi XE
Weil Delphi/Emba bei einem Versuch die Operatoren, Aufgrund der Natur der Objekte, bei den Objeten zu implementieren, nur scheitern kann, da man hier eben nichts "sicher" abfragen kann.
(ungültige Objektzeiger und unbekannte Mehrfachreferenzen) Was denkst du denn, warum es nicht für Objekte implementiert wurden ist, sondern eben nur für Records? (die Interfaces hatten die wohl einfach nur vergessen) |
AW: Delphi 2011 heißt jetzt Delphi XE
Dieses Problem dürften andere Sprache, welche mit Referenzen haben dann auch haben. das Problem besteht ja auch, wei schon gwschrieben auch so.
Delphi-Quellcode:
Auch hier existiert das ursprüngliche Objekt, welches a referenziert weiter.
var
a,b,c: TObject; begin ... a := b; Oder
Delphi-Quellcode:
...
var
a: TOject; begin ... a := Tobject.Create; ... a := Tobject.Create; |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Nee, ernsthaft, wahrscheinlich würde es theoretisch gehen, nur würds wohl mehr Verwirrung stiften und Fehler hervorrufen es nützen würde. überschreibt mal fix den Zuweisungsoperator für einige Klassen, muhaha :twisted: P.S.: Da fällt mir gerade ein... würden die operator Überladungen dann vererbt? Japp, das könnt wohl richtig derb nach hinten losgehen, wenn man da was falsch macht :D |
AW: Delphi 2011 heißt jetzt Delphi XE
Klingt so, als ob es wirklich das schlauste wäre, den Compiler von Delphi durch den FPC zu ersetzen
|
AW: Delphi 2011 heißt jetzt Delphi XE
Bloß keinen anderer Compiler verwenden, der nicht 100% mit den Sprachfeatures von D2010 kompatibel ist. Die Umstellung von Ansi auf Unicode, OHNE dabei abwärts kompatible zu bleiben ({$DEFINE UNICODE}), hat mir gereicht. :pale:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Das war ja schon oft ein Wunschtraum. Delphi IDE + FPC-Compiler + Support und kommerzielle weiterentwicklung.
Jedoch würde sich da wahrscheinlich sowohl Embarcadero als auch die FPC-Entwickler querstellen. Ich kann mir kaum vorstellen, dass dann noch so viele umsonst am Compiler für Emba weiterentwickeln werden. Ich bin auch Hansa´s Meinung und man sollte mit neuen Features vorsichtig sein. Denn nicht alle brauch(t)en unbedingt Unicode, 64bit, Multiplatform, etc. Für viele Firmen war/ist die Umstellung auf neuere Versionen einfach ein Aufwand (den Code zu portieren) für etwas was sie nicht unbedingt benötigen. |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Ob noch mehr Faktoren eine Rolle spielten weiß ich nicht. |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
der delphi compiler ist jahre hinter fpc hinterher. wenn die nicht schnell was machen ist der vorsprung nie wieder einzuholen. Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Und es ist kein Delphiproblem, denn auch in anderen Programmiersprachen wäre es so gekommen, wenn man da sowas umgestellen würde. Wenn man dynamische Typen (Integer, Char, String) als statisch nutzt, dann soll man sich nicht beschweren, wenn sie sich mal ändern und der Code dann nicht mehr ordentlich läuft. :warn: |
AW: Delphi 2011 heißt jetzt Delphi XE
Hast du eine offizielle Quelle, die besagt das Integer dynamisch bleibt?
|
AW: Delphi 2011 heißt jetzt Delphi XE
Code, der keine undokumentierten Details verwendet und nicht von nichtzugesicherten Dingen ausgeht, funktioniert eigentlich. Nur tricky Code stolperte natürlich über die Änderung der Länge eines Zeichens
|
AW: Delphi 2011 heißt jetzt Delphi XE
@mleyen: eigentlich sollte ja Integer in einem 64-bittigem Delphi auch 64 Bit sein, aber bei diesem Sonnderfall wird gemunkelt daß Delphi es C nachmachen will und Integer 32 Bit bleibt, was ich für vollkommenen Quasch halte :wall:
(über Cardinal hab ich noch nichts gehört, aber ich hoffe das bleibt so oder so kompatibel zum Integer) Aber Integer war als dynamischer Typ ausgelegt und demnach hätte man diesen auch als dynamischen Typen (kompilierrt für Win 1.x = 16 Bit / Win 9x/NT32 = 32 Bit / Win64 = 64 Bit) benutzen müssen. Aber beim Char/String/PChar trifft es ja zu ... da war vorher schon klar (bevor man überhaupt an ein Unicode-Delphi dachte), daß sich dieses irgendwann mal ändern könnte ... hätte man also ordentlich programmiert, gäb's keine Probleme. |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
Du hast in XP-Zeiten auch immer nach %APPDATA% geschrieben, nicht? Der Aufwand existiert[Punkt] |
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
AW: Delphi 2011 heißt jetzt Delphi XE
Wenn plötzlich alle nicht mehr migrieren wegen neuer Features, die evtl Probleme mit der Abwärtskompatibilität machen, frag ich mich, warum alle so rumheulen, wenn Emba dann keine neuen Features einbaut. 8-) :P
|
AW: Delphi 2011 heißt jetzt Delphi XE
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 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