![]() |
Komponente für 32 als auch 64 Bit
Hallo,
ich habe bereits gesucht und auch hier in der DP zwei Threads zum Thema gefunden, jedoch bin ich daraus leider nicht so richtig schlau geworden. Ich habe hier ein Package was 3 Komponenten beinhaltet. Die Anwendungen die die Komponenten bis jetzt verwendet haben waren 32 Bit VCL Anwendungen. Bei denen ist es kein Problem die Komponenten im Designer per Drag and Drop von der Komponentenleiste auf das Formular zu ziehen. Jetzt möchte ich eine Anwendung erstellen die als 64bit kompiliert werden soll, diese soll auch die Komponenten nutzen. Dazu habe folgendes probiert 1. Im Package als Buildziel 64 Bit hinzugefügt 2. Erstes Package auf "nur Laufzeit" umgestellt und dem das Buildziel 64bit hinzugefügt. 2. Package erstellt dieses auf "Designzeit" eingestellt. Im 2. Package die register procedures aus dem ersten Packet eingefügt. und das Package installiert 3. wie 2. aber 2 "Laufzeit" Packages erzeugt eins für 32 bit und eins für 64 bit. Und ein drittes Package was die "Designzeit" Register procedure enthält. keine der Versuche hat leider zum Erfolg geführt. Delphi graut mir meine Komponenten bei 64Bit Anwendungen weiterhin aus und zeigt im Tooltip an dass diese Komponenten nur für 32Bit vorhanden sind. Was habe ich übersehen? Muss ich irgendwelche Suchpfade oder Bibliothekspfade umstellen? Über Hilfe wäre ich sehr dankbar. Ein Beispielprojekt kann ich nicht direkt zur Verfügung stellen da ich nicht die Berechtigung habe die Packages zu veröffentlichen. Danke schon mal im Voraus. |
AW: Komponente für 32 als auch 64 Bit
Normalerweise sollte es genügen, wenn du das Laufzeit-Packge bzw. das Entwurfs- und Laufzeit-Package mit beiden Plattformen anlegst. Wichtig ist, daß beim Compilieren des Win32-Package die Win64-Plattform schon vorhanden ist. Diese Information wird im Win32-Package hinterlegt, denn das ist ja das, was die IDE lädt.
|
AW: Komponente für 32 als auch 64 Bit
Deklariere die Komponenten so:
Delphi-Quellcode:
damit ist die Komponente für 32 und 64 Bit erlaubt.
type
[ComponentPlatformsAttribute(pidWin32 or pidWin64)] // Only supported on Win32 and Win64 TMyComponent = class(TComponent) private ... end; Das sind die aktuell erlaubten PID* : Zitat:
|
AW: Komponente für 32 als auch 64 Bit
Zitat:
|
AW: Komponente für 32 als auch 64 Bit
Nur mal interessehalber, ich gehe davon aus das dies hier nicht funktiniert:
Delphi-Quellcode:
type
[ComponentPlatformsAttribute(pidWin32)] // Only supported on Win32 TMyComponent = class(TComponent) private ... end; type [ComponentPlatformsAttribute(pidWin64)] // Only supported on Win64 slighlty different TMyComponent = class(TComponent) private ... end; |
AW: Komponente für 32 als auch 64 Bit
Zitat:
|
AW: Komponente für 32 als auch 64 Bit
Zitat:
Nein das geht nicht. Es gelten ja die normalen Regeln für den Compiler. Das andere sind Attribute die zur Runtime ausgewertet werden |
AW: Komponente für 32 als auch 64 Bit
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich habe jetzt im Anhang eine Testkomponente die unter 32 Bit verwendbar ist und unter 64 Bit nicht. Eventuell kommen wir ja so weiter. Edit: Verwendete Delphiversion ist XE² |
AW: Komponente für 32 als auch 64 Bit
Ok, dann vielleicht in Kombination mit $IFDEFs, die Attribute steuern dann wohl nur die Anzeige im Designer.
Macht aber wahrscheinlich sowieso wenig Sinn so extrem unterschiedliche Versioen zu haben, dass man verschiedene Klassen bräuchte. Ich würds definitiv dann auch eher in Unterklassen auslagen was spezifisch ist. Rollo |
AW: Komponente für 32 als auch 64 Bit
Zitat:
DAs Designtimepackage natürlich nur 32 Bit, geht auch nicht anders. Das sollte reichen.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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