Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi - prístup k "hlavnej" vlastnosti objektu priamo

Slova read a write (jsou to jen syntaktické konstrukce, ne metody ale metody mohou zavolat) jsou úplně stejné, jako pro normální vlastnost (nebo můžou i chybět pro vlastnost "jen ke čtení" nebo "Jen k zápisu"). Direktiva DEFAULT jen říká kompilátoru, že volání je možno zkrátit zápis při použití vlastnosti a kompilátor to přeloží, jako kdyby se to volalo celé. Označuje defaultní (implicitní) vlastnost, ke které se přistupuje jen jménem objektu.
Příklad (jak si to asi představuješ - asi chceš vidět i jak se vlastnosti indexují :-) ):

type 
TPokus = object
   private
   fItems: array[0..15, 0..15] of Byte;
   procedure SetItems (I, J: integer; Value: byte);
   function GetItems (I, J: integer): byte;
   public //(nebo PROTECTED jestli se k tomu přistupuje jen z nadtřídy)
   property Items [I, J: integer]: byte read GetItems write SetItems; default;
end;

// Poznámka: V čtenáři/zapisovateli nemám ošetřen index mimo pole
procedure TPokus.SetItems (I, J: integer; Value: byte); 
begin 
   fItems [I, J] := Value 
end;

function TPokus.GetItems (I, J: integer); 
begin 
   Result := fItems [I, J] 
end;

K vlastnosti pak můžeš přistupovat dvojím způsobem (díky frázi DEFAULT):
Pokus: TPokus;
...
Pokus := TPokus.Create ();
...
Pokus.Items [1, 1] := 255;
// nebo totéž
Pokus [1, 1] := 255;

BTW tak jak jsi to uvedl ty, to nejsou vlastnosti (musí být uvedeny slovem PROPERTY) ale členy.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny