Saturday 25 February 2017

Delforexp Delphi 2010 System

Ich versuche, meine Delphi 2010-Code ändern, um in XE7 kompilieren (und wollen die Fähigkeit, es in 2010 zu kompilieren beibehalten). Also in der Einheit, die meine mainform beherbergt, habe ich bedingte Anweisungen hinzugefügt. Die folgenden Arbeiten funktionieren im Jahr 2010. Aber XE7 fügt am Ende automatisch eine System. Actions hinzu, um eine uses-Klausel zu erstellen, die nun System. Actions zweimal deklariert hat (siehe unten), und gibt eine Fehlermeldung dcc32 Error MyForm. pas (10): E2004 Bezeichner redeclared: System. Actions. Warum ist XE7 nicht akzeptieren, das Gerät aus der innerhalb der bedingten Richtlinie gefragt 01.10. Um 23:31 Die IDE doesn39t wissen über die bedingten Defines. Es weiß nur, dass Sie eine bestimmte Komponente auf dem Formular haben, und es can39t finden, dass Einheit in der uses-Klausel, so fügt es hinzu. Wie gesagt, die Schnittstelle verwendet Klausel gehört der IDE. nicht du. Wenn sich die Komponente im Formular befindet, stellt die IDE sicher, dass das Gerät direkt in die uses-Klausel aufgenommen wird. I39ll wiederholen Sie es ein drittes Mal für Klarheit: Die Schnittstelle verwendet Klausel in einer Form-bezogenen Einheit gehört der IDE in Bezug auf jede Komponente auf ein Formular fallen gelassen. Ndash Ken White Oct 2 14 at 0:01 Wie Ken sagt, die Schnittstelle verwendet Klausel wird von der IDE geändert werden und die Prozesse, durch die diese erreicht wird, sind etwas weniger als anspruchsvoll (wie Sie entdeckt haben). Das gleiche Problem wirkt sich auf die Projektklausel aus. Leider ist dies bei FormDataModule bei der Verwendung von Klauseln viel schwerer zu vermeiden. Sie können einen Unit-Alias ​​verwenden (siehe Antwort von David Heffernans), müssen sich aber bewusst sein, dass, wenn Sie einen Alias ​​für eine Einheit erstellen, die die IDE hinzufügen möchte, die IDE noch einen Verweis auf die erforderliche Einheit hinzufügt, da sie nicht erkennt Den Alias ​​als Identifizierung der erforderlichen Einheit. Aliasing an die Systemeinheit wird dies vermeiden, da sie bereits (implizit) von jeder Einheit verwendet wird. Eine weitere Alternative besteht darin, alle diese Bedingungen aus Ihrer Verwendungsliste zu entfernen und stattdessen Platzhaltereinheiten nach Bedarf zu erstellen, damit die verschiedenen Compiler, die Sie für das Projekt verwenden möchten, von der einzelnen Verwendungsliste erfüllt werden können, die aus der Liste kombiniert wird, die jede IDE besteht Ist erforderlich (die IDE wird nicht unbenutzte Einheiten aus der Verwendungsliste entfernen, etwas, das oft eine Beschwerde ist, aber in diesem Fall tatsächlich hilft, Ihr Problem zu lösen). In diesem Fall erstellen Sie in Ihrem Delphi 2010-Projekt eine leere Actions-Unit: Sie müssen natürlich sicherstellen, dass sich dieses Gerät nicht im Projektpfad für Ihre XE7-Version des Projekts befindet. Eine Möglichkeit, dies zu erreichen, wäre sicherzustellen, dass die leere Actions. pas-Unit nicht explizit in der DPR-Liste aufgeführt ist, sondern in einem Unterordner Ihrer Projektquelle (z. B. Platzhalter) platziert ist. Sie können diesen Unterordner dann dem Projektsuchpfad für die Version Delphi 2010 hinzufügen, aber nicht die XE7-Version: Wenn Sie feststellen, dass Sie Platzhalter für jede der verschiedenen Versionen benötigen, benötigen Sie separate Platzhalterordner. Sie können weitere versionsspezifische Unterordner erstellen, zum Beispiel: Diese Art von Struktur könnte einfach aus der Sicht der Schaffung eines autoself Dokumentierung Organisation empfohlen werden. Beachten Sie, dass dies nur für den Umgang mit Unit-Referenzen in der uses-Klausel des Schnittstellenabschnitts von Forms (oder Frames usw.) erforderlich ist. In nicht-visuellen Einheiten oder im Implementierungsabschnitt stört die IDE nicht, so dass bedingte Zusammenstellungsrichtlinien keine Probleme darstellen sollten. Der einfachste Weg, dies zu beheben, besteht darin, einen Alias ​​für Ihr Delphi 2010-Projekt hinzuzufügen. Youll müssen verschiedene. dproj-Dateien für Ihre verschiedenen Delphi-Versionen verwenden, aber Sie müssen das trotzdem tun. In den Einheiten-Aliase-Einstellungen für das Delphi 2010-Projekt fügen Sie dies: Im mit System als Alias-Ziel, weil die System-Einheit ist automatisch in jeder Delphi-Einheit enthalten und so aliased Einschlüsse sind gutartig. Seine die einfachste Weise, die ich denken kann, um den Compiler effektiv ignorieren einen Eintrag in einer uses-Klausel zu denken. Dann können Sie Ihre use-Klausel wie folgt deklarieren: Dies wird in Delphi 2010 kompilieren, da die Alias-Verarbeitung Aktionen auf System zuordnen wird. In XE7 sind Sie auch fein, weil es keinen Alias ​​gibt, und die IDE durch das Vorhandensein der Actions-Einheit erfüllt ist und so fühlt sich kein Zwang, die Verwendungen Klausel zu ändern. Leading IoT Application Development Vereinfachen Sie das Internet der Dinge Gadgets und Geräte an Ihre App Oder Enterprise. RAD Studio ermöglicht es Entwicklern, die Macht der IoT (Internet of Things) Lösungen nutzen. Entwickler können durch die Integration von Geräten, Sensoren, Unternehmensdaten und Cloud-Services nahtlos neue Möglichkeiten für bestehende Desktop - und mobile Anwendungen hinzufügen. Immer mehr Gadgets und Geräte werden dem Internet der Dinge Ökosystem hinzugefügt jeden Tag. Die Verbindung zwischen diesen Gadgets und Geräten hat das Potenzial, bemerkenswerte, völlig neue Benutzererlebnisse zu schaffen, die die physische Umgebung integrieren. Erstellen von Hyper-Connected - und Flexible-Apps Die Funktionalität bestehender Business-Apps lässt sich einfach auf mobile Geräte, neue IoT-Gadgets und mehrere Back-End-Services und - Datenbanken erweitern. Unsere innovative Live Bindings-Lösung ermöglicht es Ihnen, Echtzeit zu sehen, wie Daten in Ihre Formulare und Anwendungen für beispiellose Geschwindigkeit und Genauigkeit der Entwicklung fließen. Sie können Back-End-Services und Plattformen mit hoher Flexibilität ohne drastische Neuinvestitionen wechseln.


No comments:

Post a Comment