No - ma poi di nuovo: Sì ... Sorta di ...
function getP1(Cl,Rw : integer) : string;
procedure setP1(C1,Rw : integer ; const s : string);
function getP2(const Cl : string ; Rw : integer) : string;
procedure setP2(const C1 : string ; Rw : integer ; const s : string);
property P1[Cl,Rw : integer] : string read getP1 write setP1; default;
property P1[const Cl : string ; Rw : integer] : string read getP2 write setP2; default;
Il trucco è quello di assegnare un nome alla proprietà lo stesso, e per segnare entrambi con clausola di "default". Poi si può accedere alla stessa nome di proprietà con diversi parametri:
P1['k',1]:=P1[2,1];
P1[2,1]:=P1['k',1];
compila fine.Don't so se questo è uffcialmente supportato o se ci sono alcuni altri problemi con esso, ma
si compila bene e chiede la corretta getter/setter (testato in Delphi 2010).
Questo ovviamente funziona solo se non si utilizza già una proprietà predefinita per la classe, in quanto l'unico modo in cui sono riuscito a farlo funzionare è tramite la clausola predefinita.
'overload' non aiuta anche ... – Ampere
È possibile attenersi a un metodo con i parametri 'variant' o' TField' dove si determina il tipo passato effettivo nel metodo stesso. –
È possibile - una specie di. Vedere la risposta ... – HeartWare