![]() |
Grafikaufbau flackert
hallo
und.. ja ich weiß dieses thema gibts auchschon öfters.. aber ich habe damit irgendwie keinen erfolg gehabt.. also jedenfalls hab ich auchschon vor dem verändern der grafik, also position und so und danach hide-show gemacht aber das reicht immernoch nicht.. also es flackert zwar schon weniger aber die figur selbst die man mittels tatertur über einen timer laufen lässt bewegt sich soch relativ und anscheinend zu schnell für delphi.. also sie flackert ebend.. hat da jemand noch ne andere lösung? ... thx mfg Timi-loader |
Re: Grafikaufbau flackert
Delphi-Quellcode:
Am besten im OnCreate oder so aufrufen
Form1.DoubleBuffered := True;
|
Re: Grafikaufbau flackert
Was hast du denn bisher gemacht? Und wie und wo zeichnest du?
![]() ![]() ![]() ...? |
Re: Grafikaufbau flackert
also das mit dem DoubleBuffered hab ich grade ausprobiert.. also flackern tuts icht mehr aber es stockt ziemlich krass.. was warscheinlich an meinem alten rechner liegt aber das programm sollte eigendlich auf älteren rechnern auch laufen..
neue bilder die eingebunden werden nehm ich immer loadfromfile aber das passiert nicht so oft.. hauptsächlich flackerts bei solchen sachen:
Delphi-Quellcode:
.. was in diesem fall der bewegung bei tastendruck dient(teil davon) .. und in ähnlicher art auch beim "hüpfen" also hoch und runter im wechsel timergesteuert
procedure TForm1.usTimer(Sender: TObject);
begin typ1.Hide; typ1.Left:=typ1.Left + 2; typ1.Top:=typ1.Top + 1; typ1.Show; end; |
Re: Grafikaufbau flackert
Das wird daran liegen, dass der gesamte Hintergrund neu gezeichnet wird.
![]() |
Re: Grafikaufbau flackert
Ein TImage sollte nicht bewegt werden, dazu ist es einfach nicht programmiert. Nimm ein Image, das den ganzen Client-Bereich (bzw. so viel, wie du eben brauchst) abdeckt und arbeite mit einem OffScreenBitmap, wie es Luckie schon erwähnt hat.
|
Re: Grafikaufbau flackert
also ich hab jetzt bei den proceduren oben:
Delphi-Quellcode:
dazugefügt und einfach irgendwo ins programm:
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
Delphi-Quellcode:
weils so auch in den gefundenen treath drinnen stand.. und ähm.. muss ich nun noch
procedure TForm1.WMEraseBkgnd(var Message: TWmEraseBkgnd);
begin Message.Result := -1; end; das mit WMEraseBkgnd(typ1); oder so aufrufen?.. also so dorekt gehts net hab ich schon probiert.. ..und das mit dem offscreenbitmap kapier ich nicht ganz o.o |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 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