Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   uses Klausel ohne Namespacing in XE2 möglich? (https://www.delphipraxis.net/164375-uses-klausel-ohne-namespacing-xe2-moeglich.html)

Stevie 9. Nov 2011 21:01

uses Klausel ohne Namespacing in XE2 möglich?
 
In letzter Zeit kommt es oft vor, dass sich in Open Source Projekte, die auch für frühere Versionen sind, die neuen Unitnamen einschleichen, wenn man mit XE2 arbeitet. Hat jemand irgendwo ne Option gefunden, das zu deaktivieren, so dass man quasi im "XE Kompatibilitätsmodus" arbeitet? Wenn nicht, wäre das ne prima Option für die DDevExtensions *g*

daywalker9 9. Nov 2011 21:51

AW: uses Klausel ohne Namespacing in XE2 möglich?
 
Nein, das geht nicht, also selber per Hand entfernen.

DeddyH 10. Nov 2011 07:33

AW: uses Klausel ohne Namespacing in XE2 möglich?
 
Ich bin nicht sicher, ob ich das Problem richtig verstanden habe, aber evtl. hilft dieser Thread weiter.

himitsu 10. Nov 2011 07:36

AW: uses Klausel ohne Namespacing in XE2 möglich?
 
Also einfach für alle Nicht-XE2-Units einen Alias erstellen. :stupid:
Leider hilft das nur, wenn man Fremdcodes bei sich zum laufen bringen will, aber will man Codes für andere schreiben, dann führt wohl kein Weg an den {$IFDEF}s vorbei oder man bringt alle XE2+-Benutzer dazu, bei sich diese Aliase einzubauen. :wall:

Wo bleibt hier eigentlich die so vielbeworbene Abwärtskompatibilität?

Uwe Raabe 10. Nov 2011 08:08

AW: uses Klausel ohne Namespacing in XE2 möglich?
 
Zitat:

Zitat von DeddyH (Beitrag 1135443)
Ich bin nicht sicher, ob ich das Problem richtig verstanden habe, aber evtl. hilft dieser Thread weiter.

Ich bin mir da auch nicht sicher, denn ich habe es wohl anders verstanden als du: Arbeitet man mit XE2, dann kann es vorkommen, daß die IDE automatisch die neuen Unit-Namen (z.B. Vcl.Controls statt Controls) in die Uses-Clause schreibt. Damit lassen sich die Sourcen nicht mehr mit älteren Delphi-Versionen compilieren. Stevie sucht nun eine Möglichkeit dies zu verhindern.

Der umgekehrte Weg ist ja durch die NameSpace-Prefixes lösbar.

Die Idee mit den DevExtensions finde ich gar nicht so schlecht.

DeddyH 10. Nov 2011 08:10

AW: uses Klausel ohne Namespacing in XE2 möglich?
 
Ach, so ist das (ich hab ja kein XE2). Dann fällt mir auch nichts anderes als IFDEFs ein.

Stevie 10. Nov 2011 08:13

AW: uses Klausel ohne Namespacing in XE2 möglich?
 
Zitat:

Zitat von himitsu (Beitrag 1135445)
Wo bleibt hier eigentlich die so vielbeworbene Abwärtskompatibilität?

Das verstehst du falsch, das heißt nur, dass ich in älteren Versionen erstellte Programme in neuen öffnen kann, nicht umgekehrt.

Zitat:

Zitat von DeddyH (Beitrag 1135443)
Ich bin nicht sicher, ob ich das Problem richtig verstanden habe, aber evtl. hilft dieser Thread weiter.

Nicht wirklich.

Ich verdeutliche es nochmal:

Sagen wir mal Programmierer Nick baut gerne Demos für eine Open Source Library und benutzt dafür XE2. Nun haben alle von ihm erstellten Projekte die Vcl.Forms in der dpr Datei und die ganzen neuen Unitnamen in den Forms. Entweder er denkt jedesmal daran, diese auf <XE2 Stand zu bringen oder alle, die kein XE2 einsetzen, können das Projekt ohne selber Hand anzulegen nicht kompilieren. Ich hab es noch nicht ausprobiert, ob das mit den Compiler Direktiven funktioniert, aber erfahrungsgemäß hauts einem da ziemlich was durcheinander, wenn man später eine Komponente auf die Form packt, welche eine neue Unit in die uses Klausel schreibt. Außerdem muss ich trotzdem manuell Hand anlegen. Und nur für Unitnamen jede Unit (zumindest die dpr und die Forms) mit Compiler Direktiven zuzukleistern, halte ich für ziemlich unschön.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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