Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Animation mit TImage! (https://www.delphipraxis.net/5437-animation-mit-timage.html)

City Light 6. Jun 2003 00:55

Versuch mal im FormCreate mit
Delphi-Quellcode:
 
Form1.DoubleBuffered := True;

Ag3nt 6. Jun 2003 00:57

Zitat:

Zitat von City Light
Versuch mal im FormCreate mit
Delphi-Quellcode:
 
Form1.DoubleBuffered := True;

funzt leider nicht ruckelt noch immer :(

Mat 6. Jun 2003 00:57

mit dem flackern weiss ich nicht, aber evtl. hilft es, wenn du
die Bilder auf Variablen packst

Delphi-Quellcode:
    Image1 := TPicture.Create;
    Image1.LoadFromFile('image1.bmp');
    Image2 := TPicture.Create;
    Image2.LoadFromFile('image2.bmp');

Mat

City Light 6. Jun 2003 01:00

mehr weiß ich leider auch nicht wie man das abstellen könnte. Vielleicht wenn du mit den Timmer Inteval rumspielst...?

Ag3nt 6. Jun 2003 01:00

Zitat:

Zitat von Mat
mit dem flackern weiss ich nicht, aber evtl. hilft es, wenn du
die Bilder auf Variablen packst

Delphi-Quellcode:
    Image1 := TPicture.Create;
    Image1.LoadFromFile('image1.bmp');
    Image2 := TPicture.Create;
    Image2.LoadFromFile('image2.bmp');

Mat

meinste wirklich das klappt?

Ag3nt 6. Jun 2003 01:02

Also hier hab ich mal einen Code der einen Käfer FLACKERFREI über einen Hintergrund laufen läßt. Kannst du mir bei dem Code bischen Helfen?

Delphi-Quellcode:
procedure TForm1.Kaeferanimation;
var
    Temp: TBitmap;
    KaeferArray, NegativArray : array [1..4] of TBitmap;
    xmirror, ymirror : shortint;
    x, y, idx : integer;
begin
    xmirror := 1;
    ymirror := 1;
    y := 1;
    idx := 1;
    Temp   := TBitmap.create;
    Temp.Width := 42;
    Temp.Height := 42;
    For x := 1 to 4 do
    begin
      KaeferArray[x] := TBitmap.create;
      NegativArray[x] := TBitMap.create;
      KaeferArray[x].Width  := 40;
      NegativArray[x].width := 40;
      KaeferArray[x].Height := 40;
      NegativArray[x].Height := 40;
    end;
    x := 1;
     
    Kaeferarray[1].LoadFromFile('Bilder\ru.bmp');
    Kaeferarray[2].LoadFromFile('Bilder\ro.bmp');
    Kaeferarray[3].LoadFromFile('Bilder\lo.bmp');
    Kaeferarray[4].LoadFromFile('Bilder\lu.bmp');
    NegativArray[1].LoadFromFile('Bilder\nru.bmp');
    NegativArray[2].LoadFromFile('Bilder\nro.bmp');
    NegativArray[3].LoadFromFile('Bilder\nlo.bmp');
    NegativArray[4].LoadFromFile('Bilder\nlu.bmp');
 
    try

    While isrunning do begin
        sleep(Scrollbar1.Position);
        x := x + 1 * (xmirror);
        y := y + 1 * (ymirror);
       
        BitBlt(Temp.Canvas.Handle, 0, 0, 42, 42, bg.Canvas.Handle, x, y, SRCCOPY);
        BitBlt(Temp.Canvas.Handle, 1, 1, 40, 40, Negativarray[idx].Canvas.Handle, 0, 0, SRCAND);
        BitBlt(Temp.Canvas.Handle, 1, 1, 40, 40, Kaeferarray[idx].Canvas.Handle, 0, 0, SRCINVERT);
        BitBlt(Paintbox1.Canvas.Handle, x, y, 42, 42, Temp.Canvas.Handle, 0, 0, SRCCOPY);

        If (y + 40 > Paintbox1.Height) or (y <= PaintBox1.Top) then
        begin
          ymirror := ymirror * (-1);
          if (xmirror = 1) and (ymirror = 1) then
           idx := 1
          else
          if (xmirror = 1) and (ymirror = -1) then
           idx := 2
          else
          if (xmirror = -1) and (ymirror = -1) then
           idx := 3
          else
          if (xmirror = -1) and (ymirror = 1) then
           idx := 4
        end
        else

        If (x + 40 > PaintBox1.Width) or (x <= PaintBox1.Left) then
        begin
          xmirror := xmirror * (-1);
          if (xmirror = 1) and (ymirror = 1) then
           idx := 1
          else
          if (xmirror = 1) and (ymirror = -1) then
           idx := 2
          else
          if (xmirror = -1) and (ymirror = -1) then
           idx := 3
          else
          if (xmirror = -1) and (ymirror = 1) then
           idx := 4;
        end;
        Application.ProcessMessages;
    end;
   finally
     Temp.Free;
     For x := 1 to 4 do
     begin
       KaeferArray[x].Free;
       NegativArray[x].Free;
     end;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
Jpg:TjpegImage;
begin
 Bg := TBitmap.Create;
 Jpg := TJpegImage.Create;
 try
   jpg.LoadFromFile('Bilder\Background.jpg');
   Bg.Assign(Jpg);
 finally
   Jpg.Free;
 end;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
 BitBlt(Paintbox1.Canvas.Handle, 0, 0, 360, 245, Bg.Canvas.Handle, 0, 0, SRCCOPY);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 isrunning := not isrunning;
 If isrunning then SpeedButton1.Caption := 'Stop'
  else
 SpeedButton1.Caption := 'Start';
 BitBlt(Paintbox1.Canvas.Handle, 0, 0, 360, 245, Bg.Canvas.Handle, 0, 0, SRCCOPY);
 Kaeferanimation;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Bg.free;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  isrunning := not CanClose;
end;

end.
Wie kann ich ihn bei meiner simplen Animation verwenden?

Mat 6. Jun 2003 01:03

k.A. :)


einfach mal ausprobieren..


Mat :D

Ag3nt 6. Jun 2003 01:03

Schau mal auf den letzten Post von mir MAT please :)

City Light 6. Jun 2003 01:08

Anderer Vorschlag nihm eine Gif Animation oder ein Bild! Und versuch mal dieses hier...fühge für Label einfach Image ein..
Delphi-Quellcode:
//Laufschrift von Rechts nach Links

var
  h : integer;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with Label1 do
  begin
    Left := Left -1;
if Left =(0 -Left){oder 0- Width} then
    Left := h;
  end;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  h := Form1.ClientWidth -32;
  Label1.Left := h;
end;

Ag3nt 6. Jun 2003 01:13

Bist du ein bischen Durcheinander?

Ich glaube das war der Falsche Quelltext den du hier oben gepostet hast *g* ist ja auch schon früh :) :coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz