![]() |
Manche VCL-Komponenten grau wenn 64 Bit eingestellt
Hallo!
Ich habe einen seltsamen Effekt in der XE4-IDE: Ich habe ein VCL-Projekt, das ich für x64 kompilieren will (ist in der Projektverwaltung auch so eingestellt). Wenn ich dann in der Tool-Palette zu einem bestimmten Package gehe, dann sind dort die Komponenten ausgegraut und inaktiv. Soweit das normale Verhalten wenn das betreffende Komponenten-Package nur in 32 Bit vorliegt. So nun kommts aber: Das Package liegt sowohl als 32- als auch als 64 Bit vor, ist vollständig kompiliert und installiert. Wenn ich im Projekt vorübergehend 32 Bit als Zielplattform einstelle, dann die Komponente aufs Form lege und dann wieder 64 Bit einstelle, kompiliert das Projekt ganz problemlos. Woher kommt dieses Verhalten der IDE und was muss ich ändern damit man zum Ablegen der Komponenten nicht jedesmal erst in den 32-Bit-Modus umschalten muss? Grüße Cody |
AW: Manche VCL-Komponenten grau wenn 64 Bit eingestellt
*hochschubs*
Kennt das wirklich niemand? Ich habe grad wieder mal die 64-Bit-Edition von SpTBXLib installiert und habe dort genau den selben Effekt wieder auf einem ganz anderen Rechner. |
AW: Manche VCL-Komponenten grau wenn 64 Bit eingestellt
Das kommt, wenn der Komponenten-Hersteller geschludert hat. Wenn der x64-Compiler die Komponente übersetzen kann, dann heißt dies, dass deren Code kompatibel zu 64-Bit ist. Das ist schon mal was wert.
Der IDE muss man aber mitteilen, welche Komponente für welche Plattform verfügbar ist. Win32, Win64, MacOS, iOS oder Android. Das geht über das Attribut "ComponentPlatformsAttribute", welches man der Komponenten-Klasse voranstellen muss. Soll eine Komponente also für alle Plattform verbastelt werden können, sähe die dafür notwendige Zeile wie folgt aus:
Delphi-Quellcode:
Wenn Du Zugriff auf die Komponenten-Packages hast und sie selbst neu übersetzen kannst, wird es am leichtesten sein, o.g. Zeile manuell hinzuzufügen. Falls dies keine Option darstellt, würde ich dem Komponenten-Hersteller mal kräftig auf die Füße treten.
[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidOSX32 or pidiOSSimulator or pidiOSDevice or pidAndroid)]
|
AW: Manche VCL-Komponenten grau wenn 64 Bit eingestellt
Ok, da bin ich ja schon mal schlauer ;-)
Wobei ich an der Erklärung eine Sache nicht verstehe: Wenn ich in XE4 eine Komponente selber code und das Package auch selbst erstelle und dort NIRGENDS was von ComponentPlatformsAttribute angebe, funktioniert das trotzdem ganz normal in der IDE. Davon abgesehen scheint es so, als müsste man ComponentPlatformsAttribute im type-Abschnitt vor jeder einzelnen Komponenten-Deklaration angeben. Es wirkt sich nur auf die nächste folgende Deklaration aus. Oder sehe ich das falsch? |
AW: Manche VCL-Komponenten grau wenn 64 Bit eingestellt
Das ist richtig. Attribute wirken sich nur auf das jeweils nächste Element aus.
|
AW: Manche VCL-Komponenten grau wenn 64 Bit eingestellt
Nun gut, dann gibts da bei der SpTBXLib ja einiges einzufügen ^^ Da frag ich mich, warum das nicht gemacht wurde wenn da ausdrücklich mit x64 geworben wird ;-)
Wobei ich SpTBX an der Stelle eh nicht ganz verstehe: Die SpTBX-Distri soll 100% x64-tauglich sein, braucht aber zum Kompilieren die Toolbar 2000 und die ist per se nicht x64-fähig. Jordan Russell macht da anscheinend auch nichts mehr dran. Irgendwo habe ich mal gelesen, SpTBX hätte sich von der TB2K unabhängig gemacht aber bei den Sourcen sieht es nicht so aus. Schon seltsam das alles... Allerdings sind die SpTBX-Kompos auch wirklich schöne Komponenten, auf die ich nicht gern verzichten mag. Wenn ich sehe was die VCL da so anbietet (TToolBar, TRibbon, etc.) oder auch teure Kaufkomponenten (z.B. TMS), dann gefallen mir die alten Teile noch am allerbesten. |
AW: Manche VCL-Komponenten grau wenn 64 Bit eingestellt
Zitat:
Grad kurz getestet, einfach den Fehlermeldungen folgen, es reicht fast schon alle Listen generisch zu machen, die in der Toolbar 2000 benutzt werden. |
AW: Manche VCL-Komponenten grau wenn 64 Bit eingestellt
Hallo Sebastian,
die Änderungen an der Toolbar 2000 sind ja kein Problem und schon lange erledigt. Es ist nur seltsam dass der eine Teil mit 100% 64-Bit-Support wirbt und dieser Teil dann auf einem anderen Teil aufsetzt der eben genau das nicht kann. Ich komme irgendwie immer wieder auf SpTBX zurück, wenn ich irgendwo Toolbars einsetzen will. Sie funktionieren technisch ganz anders als die VCL-Toolbar. Es ist wahrscheinlich Geschmackssache. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 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