Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Gleichnamige Routinen definieren (https://www.delphipraxis.net/93816-gleichnamige-routinen-definieren.html)

Andreas L. 11. Jun 2007 20:09


Gleichnamige Routinen definieren
 
Hi,
ich brauche für eine Komponente 2 mal eine Routine mit dem selben Namen.

Delphi-Quellcode:
    procedure PopUp(X, Y: Integer);
    procedure PopUp(ScreenPosition: TScreenPosition);
Der Compiler sagt ich muss die Direktive overload angeben. Wenn ich hinter die 2te Routine overload; schreib bleibt der Compiler genau in dieser Zeile stehen und gibt mir die selbe Meldung.

Wie kann ich es realisieren, zwei gleichnamige Routinen zu haben?

Schönen Abend noch,
Andy

Apollonius 11. Jun 2007 20:10

Re: Gleichnamige Routinen definieren
 
Hinter beide overload schreiben.

Andreas L. 11. Jun 2007 20:11

Re: Gleichnamige Routinen definieren
 
Zitat:

Zitat von Apollonius
Hinter beide overload schreiben.

Zitat:

[Pascal Fehler] ObjectPopUpMenu.pas(57): E2266 Nur eine Methode aus einer Gruppe überladener Methoden darf 'published' sein
Und jetzt? :mrgreen:

Dax 11. Jun 2007 20:15

Re: Gleichnamige Routinen definieren
 
Ganz einfach, eine oder beide nach public schieben ;)

Andreas L. 11. Jun 2007 20:19

Re: Gleichnamige Routinen definieren
 
Zitat:

Zitat von Dax
Ganz einfach, eine oder beide nach public schieben ;)

Das habe ich mir schon gedacht. Gefiel mir aber nicht ganz. Naja, wenns nicht anders geht :-(

Trotzdem Danke und 'nen schönen Abend :-D

Muetze1 11. Jun 2007 23:35

Re: Gleichnamige Routinen definieren
 
Zitat:

Zitat von Andreas L.
Zitat:

Zitat von Dax
Ganz einfach, eine oder beide nach public schieben ;)

Das habe ich mir schon gedacht. Gefiel mir aber nicht ganz. Naja, wenns nicht anders geht :-(

Das sind Methoden von daher gibt es keinen Unterschied zwischen public <-> published. Warum ist das also ein Problem bzw. nicht so schön?

Dax 12. Jun 2007 00:02

Re: Gleichnamige Routinen definieren
 
Zitat:

Zitat von Muetze1
Das sind Methoden von daher gibt es keinen Unterschied zwischen public <-> published. Warum ist das also ein Problem bzw. nicht so schön?

Doch, den gibt es. published-Methoden kann man über RTTI finden, genau wie Properties...

Muetze1 12. Jun 2007 07:09

Re: Gleichnamige Routinen definieren
 
Zitat:

Zitat von Dax
Zitat:

Zitat von Muetze1
Das sind Methoden von daher gibt es keinen Unterschied zwischen public <-> published. Warum ist das also ein Problem bzw. nicht so schön?

Doch, den gibt es. published-Methoden kann man über RTTI finden, genau wie Properties...

Ja schön, das ist mir bewusst - aber diese sind überladen. Wie willst du die unterscheiden wenn du über den Namen eine gefunden hast? Welche hast du gefunden? Wie musst du diese aufrufen?

Das RTTI System kommt einem dort nicht entgegen und du weisst eben nicht, welche du bekommen hast. Von daher stellt sich mir immernoch die Frage: was macht es (bei diesen überladenen) Methoden für ein Unterschied zwischen Public und Published?

Bernhard Geyer 12. Jun 2007 07:37

Re: Gleichnamige Routinen definieren
 
Zitat:

Zitat von Muetze1
Das RTTI System kommt einem dort nicht entgegen und du weisst eben nicht, welche du bekommen hast. Von daher stellt sich mir immernoch die Frage: was macht es (bei diesen überladenen) Methoden für ein Unterschied zwischen Public und Published?

Wenn man sowas die DUnit realisieren will benötigt man published Methoden. Jedoch wird dort keine Überladenen Methoden verwendet sondert Methoden ohne Rückgabewert und Parameter da man hier immer die gleiche Methodensignatur erwartet.
Ich denke für den Fragesteller sind die Infos im RTTI unnötig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz