![]() |
Lazarus vs: Delphi xe namespaces
ich denke Lazarus 1.0 kann aktuell keine Delphi XE Projekte einlesen wegen den in dieser Delphiversion eingeführten Unit namespaces.
Was wäre denn der beste Ansatz um Projekte sowohl unter Lazarus als auch unter D XE, XE2 ..... läuffähig zu bekommen?? |
AW: Lazarus vs: Delphi xe namespaces
Man muß keine Namespaces in XE2+ verwenden.
Ansonsten mach es wie alle Anderen auch und leg ein IFDEF um die Uses drumrum. |
AW: Lazarus vs: Delphi xe namespaces
Beim Einfügen von Komponenten werden die benötigten Units aber automatisch mit Namespaces eingefügt.
|
AW: Lazarus vs: Delphi xe namespaces
Als kleine Erläuterung noch:
Lazarus 1.0 (also die IDE an sich) unterstützt Namespaces. Beim darunterliegenden Free Pascal Compiler schaut es unterschiedlich aus: Free Pascal 2.6.0 (welcher bei Lazarus 1.0 dabei ist) unterstützt keine Namespaces. Free Pascal 2.7.1 (die Entwicklungsversion, welche auch von Lazarus unterstützt wird) bietet Unterstützung für Namespaces. Aber: Die Units der RTL, LCL und so weiter sind noch nicht auf Dotted Unit Names umgestellt und mir ist auch kein Plan bekannt dies zu tun. Außerdem unterstützt FPC das "Standardnamespace" Feature von XE 2 noch nicht, wobei mir hier auch noch kein Plan bekannt ist dies zu ändern. Noch zur Frage an sich: Meiner Einschätzung nach dürfte eine gleichzeitige Unterstützung für (GUI) Code von Lazarus/FPC und Delphi 2009+ (oder auch nur Delphi XE 2+) recht schwierig und wenn überhaupt sehr IFDEF-lastig werden, da einerseits die Dotted Unit Names Problematik existiert und andererseits ja auch die String Typen unterschiedlich sind (Delphi verwendet UnicodeString, während FPC noch AnsiString verwendet und noch dazu Lazarus in den AnsiString UTF-8 reinschreibt). Gruß, Sven |
AW: Lazarus vs: Delphi xe namespaces
Bei Delphi muß man auch noch aufpassen, also mit den NameSpases.
Da gibt es
Delphi-Quellcode:
, welches über die Projektoptionen automatisch einen passenden Namespace verpasst bekommen könnten.
SysUtils
Dann natürlich direkt
Delphi-Quellcode:
, aber es gibt auch noch
System.SysUtils
Delphi-Quellcode:
, welches aber was ganz Anderes ist. (k.A. wer sich das ausgedacht hat)
System_SysUtils
Die Units mit
Delphi-Quellcode:
sind zu bevorzugen und nutzen den string (UnicodeString),
Namespace + Punkt + Unitname
aber die Units mit
Delphi-Quellcode:
nutzen stattdessen den WideString und sind daher untereinander nicht unbedingt kompatibel.
Namespace + Unterstrich + Unitname
Vorallem sollte man da wohl aufpassen, daß man keine doppelten "globalen" Variablen reinbekommt, da diese beiden Varianten unabhängig voneinander sind. |
AW: Lazarus vs: Delphi xe namespaces
Zitat:
Da jeder Entwickler, der mit XE2 und höher arbeitet und Units/Forms erstellt/bearbeitet, die auch abwärtskompatibel sein sollen, automatisch die scoped Unitnamen in die Units bringt, habe ich mal bei mir in die GExperts im Uses Clause Manager eine Aktion eingebaut, mit der man den Unitscope entfernen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 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