Ĺadny brzuch
Mam kilka komponentów TImage (pl_1, pl_2 itd. oraz jeden zaznacz). Chcę by po kliknięciu na jeden z obrazków o nazwie pl_x wyświetlił się na niej obrazek zaznacz. Pomyślałem, że głupio by było wpisywać każdemu obrazkowi osobno kod, dlatego napisałem taką procedurke
procedure TForm1.Select(x, y: integer); begin zaznacz.Visible:=true; zaznacz.Top:=x; zaznacz.Left:=y; end;
i zdarzenie dla pl_1 onclick
procedure TForm1.pl_1Click(Sender: TObject); begin Form1.Select(self.top, self.left); end;
Pomyślałem, że dam wszystkim pozostałym obrazkom zdarzenie onclick na TForm1.pl_1Click i po kłopocie. Jednak sprawa okazała się nieco bardziej skomplikowana :P Zapomniałem, że tu self odwoływać się będzie nie do obrazka, a do formy :/
Czy da się poprzez self lub jakąś inną instrukcję odwołać się do obrazka z którego zdarzenie będzie wykonywane?
Hm, sender? :)
Self odwołuje się do klasy, do której należy metoda, a w Twoim przykładzie będzie tak:Form1.Select(timage(sender).top,timage(sender).left);
Użytkownik Cyrkiel edytował ten post 20 luty 2007, 19:00
kurde jakie to było proste :D
Temat można chyba już zamknąć ;)
Użytkownik lol of lol edytował ten post 20 luty 2007, 19:04
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
procedure TForm1.Select(x, y: integer); begin zaznacz.Visible:=true; zaznacz.Top:=x; zaznacz.Left:=y; end;
i zdarzenie dla pl_1 onclick
procedure TForm1.pl_1Click(Sender: TObject); begin Form1.Select(self.top, self.left); end;
Pomyślałem, że dam wszystkim pozostałym obrazkom zdarzenie onclick na TForm1.pl_1Click i po kłopocie. Jednak sprawa okazała się nieco bardziej skomplikowana :P Zapomniałem, że tu self odwoływać się będzie nie do obrazka, a do formy :/
Czy da się poprzez self lub jakąś inną instrukcję odwołać się do obrazka z którego zdarzenie będzie wykonywane?
Hm, sender? :)
Self odwołuje się do klasy, do której należy metoda, a w Twoim przykładzie będzie tak:Form1.Select(timage(sender).top,timage(sender).left);
Użytkownik Cyrkiel edytował ten post 20 luty 2007, 19:00
kurde jakie to było proste :D
Temat można chyba już zamknąć ;)
Użytkownik lol of lol edytował ten post 20 luty 2007, 19:04