Discussion:
przeciążanie property
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
w***@poczta.onet.pl
2011-09-01 07:51:05 UTC
Permalink
czy jest jakaś możliwość przeciążania property ??
chciałem coś takiego zrobić

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
Grzegorz Skoczylas
2011-09-01 09:40:50 UTC
Permalink
Post by w***@poczta.onet.pl
czy jest jakaś możliwość przeciążania property ??
chciałem coś takiego zrobić
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ć .
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
----------------------------------------------
w***@poczta.onet.pl
2011-09-01 15:22:32 UTC
Permalink
Post by Grzegorz Skoczylas
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 ).
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Rafał 'solaris' F.
2011-09-08 13:54:38 UTC
Permalink
Dnia Thu, 01 Sep 2011 17:22:32 +0200
***@poczta.onet.pl rzekł:

: tak też zrobiłem (a chciałem być taki sprytny że w tym kombinowaniu że
: przechytrzyłem sam siebie ).

Jeśli chcesz nasz przechytrzyć to zniknij z tej grupy. ;->
--
Contact: GG#44450, solargrim at gmail.com
19:16:28 -!- Platyna Erroneous Nickname
Loading...