TListMemory=class(TStringList)
function Get(Index: Integer): TMemoryStream;overload;
function Get(Index: Integer): String;reintroduce;overload;
procedure Put(Index: Integer; Item: TMemoryStream);overload;
procedure Put(Index: Integer; Item: String);reintroduce;overload;
public
property Items[Index: Integer]: TMemoryStream read Get write Put;
property Items[Index: Integer]: String Read Get Write Put;default;
End;
a tu kompilator w każdej lini zwraca błąd ze tak nie można przeciążać .
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
To nie przejdzie - w każdym razie nie przejdzie w Delphi (na pewno do
wersji 2007; późniejszych jeszcze nie mam). Problem dotyczy
zdefiniowania funkcji "Get". W Delphi przeładowane funkcje muszą różnić
się parametrami. Różnica tylko w typie wyniku funkcji nie jest
wystarczająca. Można to obejść zmieniając nazwy tych funkcji, na
przykład na "GetMem" i "GetStr".
Drugi problem dotyczy właściwości. Delphi, a przynajmniej wersje do
2007, nie pozwala na przeładowanie właściwości.
--
Pozdrawiam,
Grzegorz Skoczylas
http://gskoczylas.rekord.pl
----------------------------------------------
> To nie przejdzie - w każdym razie nie przejdzie w Delphi (na pewno do
> wersji 2007; późniejszych jeszcze nie mam). Problem dotyczy
> zdefiniowania funkcji "Get". W Delphi przeładowane funkcje muszą różnić
> się parametrami. Różnica tylko w typie wyniku funkcji nie jest
> wystarczająca. Można to obejść zmieniając nazwy tych funkcji, na
> przykład na "GetMem" i "GetStr".
tak też zrobiłem (a chciałem być taki sprytny że w tym kombinowaniu że
przechytrzyłem sam siebie ).