Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Procedure za pozivanje razlicitih klassa.

[es] :: Pascal / Delphi / Kylix :: Procedure za pozivanje razlicitih klassa.

[ Pregleda: 2627 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan Milosevic

Član broj: 67
Poruke: 932
77.46.249.*



+31 Profil

icon Procedure za pozivanje razlicitih klassa.06.06.2008. u 08:51 - pre 192 meseci
Ovako, imam jedan mali problem.
Pokusavam da napravim proceduru koja obavlja neku stvar
i nije problem u samoj proceduri vec zelim da se parametri koje unosim
odnose kako na roditeljsku klasu tako i na izvedenu klasu.
Konkretno
TFarmer = class
public
Ruke:Truke;
.......
end;

TFarmerovSin = class(TFarmer)

Ono sto zelim je da napravim proceduru koja ce se odnositi i na roditeljski i na klasu potomka
Procedure Seje(Farmer:?);
Farmer.Ruke:=....
Odnosno ne zelim da pravim zasebnu proceduru koja bi se odnosila posebno na TFarmer i na TFarmerovSin
 
Odgovor na temu

schild
Dejan Šild
TopCode Software
Subotica

Član broj: 59888
Poruke: 138
*.legendww.com.

Sajt: www.topcode.rs


+2 Profil

icon Re: Procedure za pozivanje razlicitih klassa.06.06.2008. u 09:14 - pre 192 meseci
Ovo bi trebalo da radi ako sam dobro razumeo:
Code:
TFarmer = class
public
  Ruke:Truke;
  procedure Seje;
.......
end;

TFarmerovSin = class(TFarmer)
...

implementation

procedure TFarmer.Seje;
begin
  Ruke:=....
end;


Znaci mozes pozvati i Farmer.Seje i FarmerovSin.Seje. Uvek ce se te "Ruke" odnositi na onog za koga si pozvao metod.
To si mislio?

 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
77.46.249.*



+31 Profil

icon Re: Procedure za pozivanje razlicitih klassa.06.06.2008. u 09:57 - pre 192 meseci
Nisi dobro razumeo.
Procedura nije sastavni deo klase. Cak se nalazi u drugom modulu.
Znam i ja da bi tako radilo ali bi na taj nacin opteretio klasu procedurama.
Jer treba da uradim na stotine slicnih funkcija i procedura koje cu kasnije
smestiti u zaseban dll.
 
Odgovor na temu

priki

Član broj: 24732
Poruke: 700
*.static.t-2.net.

ICQ: 174153511


+26 Profil

icon Re: Procedure za pozivanje razlicitih klassa.06.06.2008. u 10:10 - pre 192 meseci
tebi treba nešto što se zove "indirection"

evo ti link na tu temu kao i na celo OOP u Delphiju

http://delphi.about.com/od/oopindelphi/a/delphi_oop17.htm
 
Odgovor na temu

schild
Dejan Šild
TopCode Software
Subotica

Član broj: 59888
Poruke: 138
*.legendww.com.

Sajt: www.topcode.rs


+2 Profil

icon Re: Procedure za pozivanje razlicitih klassa.06.06.2008. u 11:04 - pre 192 meseci
Mozda ovako nesto:

Code:

Unit UFarmeri;
TFarmer = class
public
  Ruke:Truke;
.......
end;

TFarmerovSin = class(TFarmer)
...


i onda u drugom unitu, koji je mozda i DLL ide...

Code:

Unit UDLL;
interface
uses UFarmeri;
type ctFarmeri = class of TFarmer;
...
procedure Seje(ATip: ctFarmeri; AObject: TObject);
...
implementation

procedure Seje(ATip: ctFarmeri; AObject: TObject);
begin
  (AObject as ATip).Ruke:=...;
end;


Onda bi mogao pozivati proceduru:
Seje(TFarmerovSin, FarmerovSin); ili Seje(TFarmer, Farmer);
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
77.46.249.*



+31 Profil

icon Re: Procedure za pozivanje razlicitih klassa.06.06.2008. u 16:11 - pre 192 meseci
Hvala vam prijatelji. Resio sam problem.
Stvari su onakve kakve i treba da budu.
Dovoljno je navesti kao promenjivu samo tip roditeljske klase
i radice za sve nasledene klase.
To ne funkcionise u slucaju ako je parametar definisan kao var.
procedure seje( var Farmer:Tfarmerovsin);
ako je definisana za klasu TFarmer , ali to cu da resim na drugi nacin.
Hvala jos jednom za pomoc i trud.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Procedure za pozivanje razlicitih klassa.

[ Pregleda: 2627 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.