Autor Beitrag
ASMFreak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53
Erhaltene Danke: 9



BeitragVerfasst: Fr 09.07.10 08:46 
Moin,

im Rahmen der Unit TShellChangeNotifyEx, die ich upgeloadet habe (falls jemand den Quelltext sehen möchte!), habe ich versucht, ein paar Methoden per overload zu überschreiben (die Funktionen GetRegisteredChangeNotifyObjects und UnRegisterChangeNotifyObject).

Bei einigen in der Klasse gelang mir das (StopWatching, GetShellChangeEvent, UnregisterRequestorObjects), bei einigen (s.o.) nicht! Der Compiler hat dann beim Aufruf der jeweils zweiten überladenen Methode die Meldung ausgegeben, dass es "keine überladene Funktion gibt, die mit diesen Argumenten aufgerfuen werden kann".

Das kann aber nciht stimmen, denn benennt man diese Funktion einfach um (indem man einen Buchstaben anhängt) und entfernt das overload, meckert der Compiler nicht mehr, die Argument-Liste stimmt also. (Und nur zur Beruhigung: Die Argumente unterscheiden sich genügend, damit der Compiler die richtige Version zuordnen kann. Daran liegt's also auch nicht.)

Verrückt macht mich, dass das bei einigen Methoden funktioniert und bei anderen nicht und ich nicht weiß, woran das liegt und daher in welchen Fällen das künftig ebenfalls Probleme geben kann.

Weiß jemand Rat?

Danke und Gruß, Trutz


Moderiert von user profile iconChristian S.: Topic aus Open Source Units verschoben am Fr 09.07.2010 um 09:03

_________________
Und aus dem Chaos sprach eine Stimme zu mir: Lächle und sei froh, es könnte schlimmer kommen.
Und ich lächelte und ich war froh – und es kam schlimmer!
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 09.07.10 09:19 
Sind den die zu überladenen Methoden virtuell?

_________________
Markus Kinzler.
ASMFreak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53
Erhaltene Danke: 9



BeitragVerfasst: Fr 09.07.10 09:28 
Egal, finktioniert in beiden Fällen nicht!

_________________
Und aus dem Chaos sprach eine Stimme zu mir: Lächle und sei froh, es könnte schlimmer kommen.
Und ich lächelte und ich war froh – und es kam schlimmer!
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Fr 09.07.10 10:12 
Bitte zeig uns die Deklaration beider Funktionen.

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
ASMFreak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53
Erhaltene Danke: 9



BeitragVerfasst: Fr 09.07.10 10:22 
Zum Beispiel

ausblenden Delphi-Quelltext
1:
2:
procedure GetRegisteredChangeNotifyObjects(ARequestorHandle: PInteger; out ANotifyObjectList: TShChNotifyItems);       
procedure GetRegisteredChangeNotifyObjects(const AControl: TControl; const AMsgID: Cardinal; ACallBack: TSHChangeCallBack; out ANotifyObjectList: TShChNotifyItems);


Funktionieren tut's bei


ausblenden Delphi-Quelltext
1:
2:
function  StopWatching: Boolean; overload;
function  StopWatching(ARequestorHandle: PInteger): Boolean; overload;

_________________
Und aus dem Chaos sprach eine Stimme zu mir: Lächle und sei froh, es könnte schlimmer kommen.
Und ich lächelte und ich war froh – und es kam schlimmer!
ASMFreak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53
Erhaltene Danke: 9



BeitragVerfasst: Fr 09.07.10 15:14 
Nachdem in den letzten fünf Stunden so furchtbar viele Antworten gekommen sind, dass ich nicht alle auswerten kann, gehe ich davon aus, dass Ihr auch nicht klüger seid als ich und hake die Frage als unerledigt ab! :bawling:

Danke trotzdem an alle, die's zumindest versucht haben.

Gruß, Trutz

_________________
Und aus dem Chaos sprach eine Stimme zu mir: Lächle und sei froh, es könnte schlimmer kommen.
Und ich lächelte und ich war froh – und es kam schlimmer!