Przedstawiam kod:
unit code;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Timer1: TTimer;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
Tab: array [1..10] of TImage;
Img: TImage;
Obiekt: Integer = 1;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var
I: Integer;
begin
Button2.Enabled := True;
Button1.Enabled := False;
I := 0;
for I := 1 to 10 do
begin
Img := TImage.Create(Self);
Img.Parent := Form2;
Img.Picture.LoadFromFile('ikona.bmp');
Img.Top := I*Img.Height;
Img.Height := 50;
Img.Width := 50;
Img.Stretch := true;
Img.Transparent := True;
Tab[I] := Img;
end;
Form2.WindowState := wsMaximized;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Timer1.Enabled := True;
Button2.Enabled := False;
Form2.DoubleBuffered := True;
Form2.Caption := 'Przesuwaj Lewo/Prawo';
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
Inc(Obiekt);
if Obiekt > 10 then Obiekt := 1;
//if TImage(Tab[Obiekt]) <> nil then
if GetKeyState(VK_Right) < 0 then
TImage(Tab[Obiekt]).Left := TImage(Tab[Obiekt]).Left + 10;
if GetKeyState(VK_Left) < 0 then
TImage(Tab[Obiekt]).Left := TImage(Tab[Obiekt]).Left - 10;
Timer1.Enabled := true;
end;
end.
próbowałem zrobić błyskawiczne przesuwanie elementów z tablicy po formie... poniosłem totalną klęskę działa to fatalnie wolno a potrzebuję błyskawicznie... macie jakieś pomysły jak szybko przesunąć 100 TImage? 10 też przesuwa się makabrycznie wolno przy intervale timera 1ms
dzięki za sugestie