procedure Posun(ktory: XXX);
begin
ktory.Left :=
ktory.Top :=
end;
Co mam napisat do toho XXX aby to fungovalo? Alebo to ma byt uplne inak?
Chcem hybat s objektom Image1 - menit jeho Left a Top poziciu. Skusal som uz TBitmap, TObject, ale nejako mi to nejde.
// Zaroven by to asi chcelo poslat mu aj, ze sa jedna o Form1, ze?
Ako by sa to dalo nastavit vseobecne, ked to dam do Image1 aby odoslal vzdy seba (Form1.Image1), ked do Image2 (Form1.Image2) hm? Diki za pomoc, ak niekto pomoze
TBitmap nema vlastnosti Left, Top, rovnako ani TObject (az jeho potomok TControl, ktoreho potomkom je zas TImage) ... co tak teda skusit procedure Posun(ktory: TImage) ?
a druhej casti otazky celkom nerozumiem asi... co budes davat do Image1/2 ?
procedure TForm1.Image2Click(Sender: TObject);
begin
Posun(Image2);
end;
procedure TForm1.Image3Click(Sender: TObject);
begin
Posun(Image3);
end;
Ci sa neda nastavit nejako vseobecne, aby sa do tych zatvoriek nemuselo po kazdom pisat Image2, Image3 - Posun(Image2). Ci neexistuje nejake slovo, ktore odosle svoj nazov?
procedure TForm1.ImageClick(Sender: TObject);
begin
Posun(Sender as TImage);
end;
a obom Image-om nastavit ako OnClick proceduru ImageClick
pretypovávanie by som radšej riešil v procedúre posun. AK sa rozhodne ju proste s obrázkami robiť to isté čo s nejakými inými komponentami, tak si len zmení pár znakov v procedúre presun a nemusí meniť pretypovávanie všade z kade sa volá. Potom by to vyzeralo takto:
procedure TForm1.posun(Sender:TObject);
begin
if sender is TImage then with (sender as TImage) do Left:=left+5 else
if sender is TButton then with (sender as TButton) do width:=width-3 else
if sender is TEdit then with (sender as TEdit) do top:=top+5;
.
.
.
end;
alebo, pri malom a statickom pocte tych obrazkov postaci zadeklarovat pole TImage-ov a niekde na zaciatku programu (TForm1.OnCreate napr.) donho popriradovat jednotlive instancie (pole[1] := Image1; pole[2] := Image2; atd.)
var obrazky:array[1..16] of TImage; //globálna
.
.
.
procedure TForm1.vytvor(n:integer);
begin
obrazky[n]:=TImage.create(nil);
with obrazok do begin
parent:=Form1;
autosize:=true;
... //ponastavuješ všetky vlastnosti
end;
end;