Mam taki problem, który pewnie dla Was jest banalny (ja dopiero przechodze z
kiedyś nauczonego Turbo Pascala na Delphi:)
Powiedzmy, że piszę sobie małą gierkę typu asteroidy. Obiekt TAstro jest
niezwiązany z TForm1, ale chciałbym by procedure Draw rysowała po canvasie.
TAstro = class
x,y,dx,dy,r:real;
color:integer;
constructor init(x1,y1, r1, col:integer);
procedure Draw(var sender:TForm1);
procedure show;
procedure hide;
procedure DoMove;
end;
var A: TAstro;
procedura TAstro.Draw rysuje po canvasie: przykładowo:
Sender.Canvas.Ellipse(100,100,200,300);
W tym celu jak widać wyżej w procedurze Draw przekazuje zmienną Sender,
która jest zmienną typu TForm1.
Oczywiscie wszystko jest ok - dopóki w procedurach obsługi Form1 wywołuje
A.Draw(self);
Ale potrzebował bym procedure Draw wywołać w innych procedurach klasy
TAstro - i wtedy jest problem jak określić zmienną sender - jeśli
przypisałbym ją do jakiejś innej zadeklarowanej zmiennej (w klasie TAstro
np. nowa zmienna var Send: Tform1, przypisuje ją w metodzie Draw jako
send:=sender;) to już to niestety nie działa i powoduje błąd podczas
wykonania. Czy jest na to jakiś sposób ? (pewnie bardzo prosty).
pozdr
Krzysiek