![]() |
Prblem mit Komponenteninstallation in Delphi XE2
Hallo,
ich habe vorhin versucht, eine Komponente, die ich in Delphi 2010 immer problemlos nutzen konnte, in Delphi XE2 zu installieren. Leider bekomme ich dabei folgende Fehlermeldung: Zitat:
Code:
Da ich länger nichts in Delphi gemacht habe, bin ich etwas ratlos. Vielleicht sieht ja jemand auf Anhieb, wo der Fehler ist?
procedure TXPMenuToolBar.CMMouseLeave(var Message: TMessage);
begin if NeedHotTrackFix and (Message.LParam <> 0) then Perform(TB_SETHOTITEM, -1, 0); inherited; end; Ciao The_Unknown |
AW: Problem mit Komponenteninstallation in Delphi XE2
Steht da auch noch was von "wird erweitert"?
Vergleich doch einfach mal die Werte von TB_SETHOTITEM und -1, mit den Wertebereichen der zugehörigen Parameter. |
AW: Prblem mit Komponenteninstallation in Delphi XE2
Bei XE2 ist der zweite Parameter von Perform als WParam (=NativeUInt) deklariert. Damit fällt -1 aus dem erlaubten Range - obwohl Microsoft diesen Wert explizit zulässt. Hier schlägt also Pascal's strenge Typisierung zu, die man leider nur durch eien Cast umgehen kann:
Delphi-Quellcode:
Perform(TB_SETHOTITEM, WParam(-1), 0);
|
AW: Prblem mit Komponenteninstallation in Delphi XE2
Das ist ja blöd. Naja, was solls, mit der Änderung funzte es dann ;) Dankesehr!!
|
AW: Pr[ADD]o[/ADD]blem mit Komponenteninstallation in Delphi XE2
Wobei Delphi nicht ganz so streng ist.
Das war ja "nur" eine Warnung. Delphi macht dort einen impliziten Cast (wie bei AnsiString zu Strng/UnicodeString), welchen es nur "benennt", damit man sich nicht wundert. Wenn aber noch sowas wie "wird erweitert" mit in der Meldung auftaucht, dann sollte man noch besser aufpassen, da dort nicht nur gecastet, sondern auch noch der Wert verändert wird. |
AW: Pr[ADD]o[/ADD]blem mit Komponenteninstallation in Delphi XE2
Zitat:
Das ist keine Warnung - das ist ein Fehler und es kompiliert nicht! |
AW: Prblem mit Komponenteninstallation in Delphi XE2
Jup, kann ich bestätigen, es war ein Fehler.
|
AW: Prblem mit Komponenteninstallation in Delphi XE2
Hmmm? :gruebel:
Gut, ich hatte letztens ein Problem mit der oberen Grenze, aber dort war das nur eine Warnung und ansonsten funktionierte alles wie gewohnt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 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