Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi IntToStr bei UInt64 (https://www.delphipraxis.net/152977-inttostr-bei-uint64.html)

himitsu 19. Jul 2010 13:00

AW: IntToStr bei UInt64
 
Überladungen funktionieren leider nicht so richtig :cry:
Delphi kann nur innerhalb einer Unit dieses automatisch unterscheiden.

Wenn man jetzt selber IntToStr mit einer UInt64-Version überläd, dann werden die Delphieigenen Funktionen quasi ausgeblendet und man kann diese nur noch über ihren Namespace aufrufen.

Delphi erkennt dann also nur noch die Deklarationen der zuletzt eingebundenen Unit.

Stevie 19. Jul 2010 13:46

AW: IntToStr bei UInt64
 
Zitat:

Zitat von himitsu (Beitrag 1036155)
Überladungen funktionieren leider nicht so richtig :cry:
Delphi kann nur innerhalb einer Unit dieses automatisch unterscheiden.

Wenn man jetzt selber IntToStr mit einer UInt64-Version überläd, dann werden die Delphieigenen Funktionen quasi ausgeblendet und man kann diese nur noch über ihren Namespace aufrufen.

Delphi erkennt dann also nur noch die Deklarationen der zuletzt eingebundenen Unit.

Stimmt nicht. Habs selber gerade getestet, weil ich noch was im Hinterkopf hatte, dass Delphi manchmal mit signed und unsigned in Verbindung mit Überladung durcheinander kommt, aber bei nem flüchtigen Test funktionierte alles.

himitsu 19. Jul 2010 13:50

AW: IntToStr bei UInt64
 
Hatte es leider selber mitbekommen, wie es nicht ging und hatte bis jetzt auch noch nichts davor gehört, daß es Delphi inzwischen kann.
Zwar noch zu Delphi 7-Zeiten und dann auch nochmal unter TDE, wo ich versuchte IntToStr für eine kleine BigMathLib zu überladen.

[edit]
komisch, weiß garnicht wieso es damals nicht ging, aber jetzt geht es urplötzlich :shock:
(D7 und D2010)

Delphi-Quellcode:
function IntToStr(b: Byte): String; overload;
begin
  Result := 'Test';
end;

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
  b: Byte;
begin
  i := 456789;
  b := 123;
  ShowMessage(IntToStr(i) + ' ' + IntToStr(b));
end;
Zitat:

456789 Test
Nja, immerhin schaft es die Autovervollständigung nicht und zeigt dennoch nur das Letzte an.

Vielleicht ging es damals ja aus einem Anderem Grund nicht und ich hatte mich dann durch die Autovervollständigung dazu verleiten lassen, daß es an einem nichtfunktionierenden Overloading liegt. :gruebel:

Stevie 19. Jul 2010 15:08

AW: IntToStr bei UInt64
 
Zitat:

Zitat von himitsu (Beitrag 1036165)
Nja, immerhin schaft es die Autovervollständigung nicht und zeigt dennoch nur das Letzte an.

Vielleicht ging es damals ja aus einem Anderem Grund nicht und ich hatte mich dann durch die Autovervollständigung dazu verleiten lassen, daß es an einem nichtfunktionierenden Overloading liegt. :gruebel:

Die Autovervollständigung zeigt immer die Signatur der letzten Methode an, das ist richtig. Machst du dann die Klammer auf, zeigt sie aber alle möglichen Überladungen.

Jakson 20. Jul 2010 14:15

AW: IntToStr bei UInt64
 
Da zerbricht man sich den Kopf wie man da tut und dann gibt's da schon genau die Funktion die man brauch nur keiner kennt sie :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 2 von 2     12   

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