![]() |
Delphi-Version: 10.4 Sydney
With Blöcke führen zu W1048 / Unsafe typecast of 'xyz' to 'Pointer'
Hallo,
ich arbeite derzeit Code auf im Rahmen einer x64 Umstellung, dabei stoße ich immer wieder auf obiges Warning, was ich bisher nicht verstehe. Jemand eine Idee ob das einen tiefen Grund hat -- oder evtl. eine Compiler "macke". z.B. gibt es folgende Code-Sequenzen
Code:
Danke schonmal für erhellende Vorschläge - warum / wieso - ja ich weiss ich könnte den W1048 auch abschalten, aber dann gehen leider evtl. Sachen unter die meine x64 Umstellung torpedieren.
procedure TMyControl.Paint;
begin with Canvas do // <-- W0148? begin ... Zeichen aufrufe end; end; procedure TMyControl.DoSome; var edt: TEdit; begin edt := TEdit.Create(self); with edt do // W1048 TEdit to Pointer? begin Parent := self; Text := 'X'; Left := 0; Top := 0; Width := 128; end; end; André |
AW: With Blöcke führen zu W1048 / Unsafe typecast of 'xyz' to 'Pointer'
Delphi-Quellcode:
kann zu Uneindeutigkeiten führen, da Methoden/Attribute/Properties so mehrfach (aus Klasse/von with) vorhanden sein können und dann die "falsche" verwendet wird
with
beeser:
Delphi-Quellcode:
procedure TMyControl.Paint;
begin var c: TCanvas := self.Canvas; ... c. ... end; |
AW: With Blöcke führen zu W1048 / Unsafe typecast of 'xyz' to 'Pointer'
Hallo,
das mit der Zwischenvariable hilft leider auch nicht immer, ich habe auch X Fälle wo eine solche existiert und trotzdem der W1048 als Warnung auftritt. Übrigends Emba kennt den Fehler / Problem seit 10.2. ( ![]() Ich habe dort jetzt nochmal nachgehakt, mal sehen ob eine Reaktion erfolgt. André |
AW: With Blöcke führen zu W1048 / Unsafe typecast of 'xyz' to 'Pointer'
Hier kann Delphi auch den Variablen/Ziel-Typ automatisch bestimmen, aus der Quelle.
Delphi-Quellcode:
var c := self.Canvas;
Den Fehler im Support melden? |
AW: With Blöcke führen zu W1048 / Unsafe typecast of 'xyz' to 'Pointer'
Zitat:
Zitat:
|
AW: With Blöcke führen zu W1048 / Unsafe typecast of 'xyz' to 'Pointer'
Zitat:
|
AW: With Blöcke führen zu W1048 / Unsafe typecast of 'xyz' to 'Pointer'
Einer hatte mal was vor 4 Jahren gemeldet ... heißt aber nicht, dass die immernoch daran arbeiten denken. :stupid:
André hat inzwischen drunter geantwortet und vielleicht auch gevotet, damit Emba weiß, dass es noch aktuell und noch mehr eine Lösung brauchen könnten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 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