![]() |
Mehrdeutigkeit bei Overload?
Hey there
Delphi-Quellcode:
Wohin zeigt hier P? Ich meine, das kann sich ja schlecht erst dann entscheiden, wenn man den Pointer castet, oder?
procedure Test(const X: Integer); overload;
begin {...} end; procedure Test(const X: Real); overload; begin {...} end; procedure DoSomething; var P: Pointer; begin P:= @Test; {...} end; Greets Shaman |
Re: Mehrdeutigkeit bei Overload?
Das Problem gabs schonmal. Ich mein es zeigt immer auf das 1. Und es konnte auch nicht gelöst werden, was aber eigentlich auch logisch ist.
|
Re: Mehrdeutigkeit bei Overload?
Zitat:
Delphi-Quellcode:
var
x: procedure(const X: Real); begin x := Test; // alternativ geht auch "@x := @Test;" end; |
Re: Mehrdeutigkeit bei Overload?
Zitat:
und es gibt keine direkte Lösung dafür ... Delphi bietet halt nichts dafür, außer jbg's Vorschlag. Und logisch ist es nicht, andere Programmiersprachen bieten dafür eine Lösung (zumindestens in ASM).
Delphi-Quellcode:
type TProcedure = procedure(const X: Real);
var P: Pointer; TProcedure(P) := Test; |
Re: Mehrdeutigkeit bei Overload?
Das logsich war eher darauf gemeint, dass der compiler es nicht selbst erkennen kann, wenn man den parameter nicht angibt. Also bezogen auf das @name.
|
Re: Mehrdeutigkeit bei Overload?
OK, wenn man dat so sieht :oops:
Hab halt das Problem, daß man in ASM nicht angeben kann welche Funktion man möchte, auch der Kompiler es nichts erkennen kann, da dort ja nicht die Parameter direkt angegeben werden und diese TypenDeklarationsGeschichte ebenfalls dort nicht funktioniert. :cry: |
Re: Mehrdeutigkeit bei Overload?
Zitat:
|
Re: Mehrdeutigkeit bei Overload?
"Ja", aber dafür muß man dann ASM mit Pascal mischen und das ist nicht immer sonderlich schön anzusehen :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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 by Thomas Breitkreuz