Ik weet dat het onmogelijk is om dit te doen, en ik weet dat als een delphi programmeur ziet dat ik dit wil doen, hij gelijk zal gaan roepen dat de methode in de ancestor class virtual moet zijn. Dat dus ff terzijde, nu de praktijk:
Ik heb een class afgeleid van TCustomImageList, en ik moet wat functionaliteit in (o.a.) de Add methode toevoegen. Maar de Add methode is static, dat is een probleem, want die is dus niet te overriden. Ik weet dat het niet erg is als je een variabele van het type van mijn afgeleide class hebt en daarop de methode aanroept, maar als bijvoorbeeld een ActionList de methode aanroept, zal ie op de ancestor class aangeroepen worden omdat ie niet virtual is en dus niet overridden.
Maar tóch moet het. Dus ik dacht, goh, laat ik dan botweg de method pointer overschijven:
Iemand suggesties?
Ik heb een class afgeleid van TCustomImageList, en ik moet wat functionaliteit in (o.a.) de Add methode toevoegen. Maar de Add methode is static, dat is een probleem, want die is dus niet te overriden. Ik weet dat het niet erg is als je een variabele van het type van mijn afgeleide class hebt en daarop de methode aanroept, maar als bijvoorbeeld een ActionList de methode aanroept, zal ie op de ancestor class aangeroepen worden omdat ie niet virtual is en dus niet overridden.
Maar tóch moet het. Dus ik dacht, goh, laat ik dan botweg de method pointer overschijven:
Delphi:
Maar dat slikt ie niet, ook deze:1
| @(inherited Add) := @Add; |
Delphi:
Die slikt ie ook niet.1
| @Add := @_Add; |
Iemand suggesties?
日本!🎌