AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Animation mit TImage!
Thema durchsuchen
Ansicht
Themen-Optionen

Animation mit TImage!

Ein Thema von Ag3nt · begonnen am 6. Jun 2003 · letzter Beitrag vom 12. Jun 2003
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#11
  Alt 6. Jun 2003, 01:55
Versuch mal im FormCreate mit
Delphi-Quellcode:
 
Form1.DoubleBuffered := True;
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Ag3nt

Registriert seit: 3. Jun 2003
28 Beiträge
 
#12
  Alt 6. Jun 2003, 01:57
Zitat von City Light:
Versuch mal im FormCreate mit
Delphi-Quellcode:
 
Form1.DoubleBuffered := True;
funzt leider nicht ruckelt noch immer
Gruß, Ag3nt
  Mit Zitat antworten Zitat
Mat

Registriert seit: 27. Mai 2003
Ort: Hönow
104 Beiträge
 
Delphi 7 Professional
 
#13
  Alt 6. Jun 2003, 01: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
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#14
  Alt 6. Jun 2003, 02:00
mehr weiß ich leider auch nicht wie man das abstellen könnte. Vielleicht wenn du mit den Timmer Inteval rumspielst...?
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Ag3nt

Registriert seit: 3. Jun 2003
28 Beiträge
 
#15
  Alt 6. Jun 2003, 02:00
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?
Gruß, Ag3nt
  Mit Zitat antworten Zitat
Ag3nt

Registriert seit: 3. Jun 2003
28 Beiträge
 
#16
  Alt 6. Jun 2003, 02: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?
Gruß, Ag3nt
  Mit Zitat antworten Zitat
Mat

Registriert seit: 27. Mai 2003
Ort: Hönow
104 Beiträge
 
Delphi 7 Professional
 
#17
  Alt 6. Jun 2003, 02:03
k.A.


einfach mal ausprobieren..


Mat
  Mit Zitat antworten Zitat
Ag3nt

Registriert seit: 3. Jun 2003
28 Beiträge
 
#18
  Alt 6. Jun 2003, 02:03
Schau mal auf den letzten Post von mir MAT please
Gruß, Ag3nt
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#19
  Alt 6. Jun 2003, 02: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;
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Ag3nt

Registriert seit: 3. Jun 2003
28 Beiträge
 
#20
  Alt 6. Jun 2003, 02: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
Gruß, Ag3nt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz