Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mehrdeutigkeit bei Overload? (https://www.delphipraxis.net/76693-mehrdeutigkeit-bei-overload.html)

Shaman 8. Sep 2006 11:44


Mehrdeutigkeit bei Overload?
 
Hey there

Delphi-Quellcode:
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;
Wohin zeigt hier P? Ich meine, das kann sich ja schlecht erst dann entscheiden, wenn man den Pointer castet, oder?

Greets
Shaman

brechi 8. Sep 2006 11:47

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.

jbg 8. Sep 2006 12:31

Re: Mehrdeutigkeit bei Overload?
 
Zitat:

Zitat von brechi
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.

Es gibt zu allem eine Lösung :lol: :

Delphi-Quellcode:
var
  x: procedure(const X: Real);
begin
  x := Test; // alternativ geht auch "@x := @Test;"
end;

himitsu 8. Sep 2006 12:55

Re: Mehrdeutigkeit bei Overload?
 
Zitat:

Zitat von brechi
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.

Stimmt
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;

brechi 8. Sep 2006 13:09

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.

himitsu 8. Sep 2006 13:21

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:

Elvis 8. Sep 2006 13:47

Re: Mehrdeutigkeit bei Overload?
 
Zitat:

Zitat von himitsu
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:

Aber du kannst doch sicherlich eine typisierte Konstante anlegen und darauf in ASM verweisen, right? :zwinker:

himitsu 8. Sep 2006 13:58

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