![]() |
Versuch mal im FormCreate mit
Delphi-Quellcode:
Form1.DoubleBuffered := True; |
Zitat:
|
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 |
mehr weiß ich leider auch nicht wie man das abstellen könnte. Vielleicht wenn du mit den Timmer Inteval rumspielst...?
|
Zitat:
|
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:
Wie kann ich ihn bei meiner simplen Animation verwenden?
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. |
k.A. :)
einfach mal ausprobieren.. Mat :D |
Schau mal auf den letzten Post von mir MAT please :)
|
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; |
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. |
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