Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 1.802 pregleda

Najnovija ↓

Class kao property 04.05.2016. u 21:55 · pre 127 meseci #1
Zašto ne radi (i što napraviti da radi) set property-a koji je klasa. Primjer

Code:

tClass1=class
   private
      fNesto: string:
      fDrugo: integer;
   publshed
      property Nesto: string read fNesto write fNesto;
      property Drugo: integer read fDrugo write fDrugo;
end;

tClass2=class(neka visual...)
  private
     fPrva: tClass1;
  protected
     procedure sefPrva(Value: tClass1);
  published
     property Prva: tClass1 read fPrva write setfPrva;
end;

...

procedure tClass2.setfPrva(Value: tClass1);
begin
   fPrva.Nesto := Value.Nesto;
   fPrva.Drugo := Value.Drugo;
end;


procedura setfPrva se ne pokrene... Znam da to mogu napraviti u klasi tClass1 i tada radi, ali mi je zgodnije u tClass2.
Re: Class kao property 04.05.2016. u 22:25 · pre 127 meseci #3
Radi se o usser kontroli, u programu:
Code:

...
  cl2.Prva.Nesto := 'asdf';
...


ili u object inspektoru mijenjam kao property.
Vidi se uredno i otvaraju se subproperty Nesto i Drugo iz klase tClass1. Uredno ih upisuje i pamti
To je samo dio koda, primjer, sve ostalo radi, a čini mi se da delphi preskače setfPrva, tj. da dođe do objekta preko čitanja property-a u tClass2, a onda u tClass1 radi upis svakog property-a.
Moram to testirati... e da je vremena....

Problem je što klasa tClass1 ne zna za klasu tClass2, a kod setiranje Nesto ili Drugo mora pozvati proceduru iz klase tClass2. Znam da mogu u klasu tClass1 dodati atribut koji će znati tko mu je vlastnik ili prosljediti proceduru, ali nisam očekivao da se delphi ovako ponaša (bezobranik jedan :) )
Re: Class kao property 04.05.2016. u 22:50 · pre 127 meseci #4
> cl2.Prva.Nesto := 'asdf';

Ne možeš tako, tvoj setter jasno kaže da setuje klasa ne property.
Dakle za tvoj setter je adekvatna upotreba:
cl2.Prva := NekaInstancaPrve;
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Sviđa mi se1
Re: Class kao property 04.05.2016. u 23:05 · pre 127 meseci #5
Da shvatio sam. Moram napraviti set na cl1, pa kod set Nesto da se okine procedura koja mi treba iz cl2

Upravo to rješavam, mislim da je OK jedino kaj je više pisanja... (da nisam lijen nikad ne bih bio programer)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme