Dobry wieczór
Piszę sobie komponent w Delphi, i mam taki problem.
Fragment kodu:
unit Thumbs;
{$R *.dcr}
interface
type TKlasa=class
public
...
zmienna1:boolean;
zmienna2:boolean;
procedure procka;
end;
type TKlasaGlowna=class(TComponent)
private
...
FKlasa:TKlasa;
procedure SetKlasa(x:TKlasa);
published
...
property Klasa:TKlasa read FKlasa write SetKlasa;
...
end;
implementation
...
procedure TKlasa.procka;
begin;
zmienna2:=not zmienna2;
end;
procedure TKlasaGlowna.SetKlasa(x:TKlasa);
begin;
showmessage('Zmiana');
FKlasa:=x;
end;
...
end.
I teraz główna część problemu.
Jeżeli jakaś tam część przykładowego programu zmieni zawartość zmienna1 poprzez coś takiego:
var KlasaGlowna:TKlasaGlowna;
...
KlasaGlowna.Klasa.Zmienna1:=true;
wtedy jak wiadomo nastąpi przekazanie sterowania do:
procedure TKlasaGlowna.SetKlasa(x:TKlasa);
begin;
showmessage('Zmiana');
FKlasa:=x;
end;
i wyświetlenie komunikatu.Jednym słowem zostanie zauważona zmiana w klasie
A jak wykona coś takiego:
var KlasaGlowna:TKlasaGlowna;
...
KlasaGlowna.klasa.procka;
i procedura zmieni wartość zmiennej zmienna2, to ta zmiana dla procedury SetKlasa przejdzie nie zauważona.
Czy da się to jakoś zmienić, za pomocą jakieś klauzuli, bądź czegoś innego?
Thx