Avatar billede kipolaks Nybegynder
04. juni 2002 - 04:32 Der er 9 kommentarer og
1 løsning

HASTIGHED!!!

findes der en måde at flytte MANGE billeder hurtigere end dette hurtigt sammenklaskede eks:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Image1: TImage;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  end;

var
  Form1: TForm1;
  Grafik : array of TImage;
implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
for i := 0 to 2000 do begin
Setlength(Grafik, length(Grafik) +1);
Grafik[i] := TImage.Create(nil);
  with Grafik[i] do begin
  Picture := Image1.Picture;
  Parent := Form1;
  Top := i;
  end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i : integer;
begin
for i := 0 to length(Grafik) -1 do Grafik[i].Left := Grafik[i].Left +10;
end;

end.
Avatar billede kipolaks Nybegynder
04. juni 2002 - 04:39 #1
Det behøver ikke at være TImage!!
Avatar billede cms Nybegynder
04. juni 2002 - 08:38 #2
Selvfølgelig gør der det. Men hvad skal du bruge det til?
Avatar billede hermandsen Juniormester
04. juni 2002 - 15:47 #3
Brug en eller flere Threads...
Avatar billede cms Nybegynder
04. juni 2002 - 16:12 #4
Du har 2000 billeder liggende ovenover hinanden og skal rykke dem 10 pixels ad gangen mod højre... Nej, vel? Hvad er dit egentlige mål?
Avatar billede kipolaks Nybegynder
05. juni 2002 - 01:05 #5
jeg vil bare gerne vide om der er en metode eller ej og evt en omskrevet version af det jeg har skrevet foroven.... er det for meget forlangt?
Avatar billede cms Nybegynder
06. juni 2002 - 23:02 #6
Non-non. Sorry jeg var ikke så frisk i forgårs :o)
Men det er altså komponenter du vil flytte? Jeg ville bare vide, hvor langt væk fra din kode du har lyst til at gå. Bedre ville være selv at skrive en Draw-metode, hvor du tegnede billederne på formen - ultimativt ville du bruge DirectX eller en anden graphics-driver.
Når du siger det ikke behøver være TImage blev jeg blot i tvivl om hvad du ville - for unægteligt ville dét at flytte billeder hurtigt være hurtigere hvis det slet ikke var TImage eller Tetellerandet, men hvis du brugte fx DelphiX som er en 'oversættelse' af DirectX-apiet til delphi, så man med et sæt komponenter kan skabe lyd, billede m.v. og indeed flytte mange billeder hurtigt ;o)
Endnu er der muligheden TForm.DoubleBuffered.
Derfor ville jeg lige vide, hvad du havde i tankerne ;o)

Du siger bare til, hvis noget af ovenstående vakte interesse. Iøvrigt findes der da også metoder til at få Formen til at lade være med at repainte - til at stille den på 'standby, dont paint' - indtil alle éns billeder er flyttet.
Du siger bare, hvad du ønsker..

Christian Scheuer
Avatar billede kipolaks Nybegynder
15. juni 2002 - 21:39 #7
cms>> smid et svar (jeg valgte DelphiX)
Avatar billede cms Nybegynder
16. juni 2002 - 01:00 #8
:o) Lækkert
Tag du bare pointene selv
Avatar billede kipolaks Nybegynder
16. juni 2002 - 01:28 #9
ok
Avatar billede cms Nybegynder
16. juni 2002 - 02:03 #10
Iøvrigt hvor fandt du dem?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester