Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TImage ruckelfrei verschieben (https://www.delphipraxis.net/76076-timage-ruckelfrei-verschieben.html)

Karstadt 29. Aug 2006 14:43


TImage ruckelfrei verschieben
 
Hallo. ich weis wie ich eine TIMAGE Verschieben kann... problem ist nur das das ganze ruckelt.. wie kann man das umgehen?

MFG

Zacherl 29. Aug 2006 14:44

Re: TImage ruckelfrei verschieben
 
Indem du keine Image verschiebst, sondern z.B. mit DelphiX arbeitest.

Daniel B 29. Aug 2006 14:46

Re: TImage ruckelfrei verschieben
 
Zitat:

Zitat von Florian Bernd
Indem du keine Image verschiebst, sondern z.B. mit DelphiX arbeitest.

[OT]Grandios![/OT] :wall:

Karstadt 29. Aug 2006 14:50

Re: TImage ruckelfrei verschieben
 
bzw. woran liegt dass, das es solche verzögerungen gibt?

Klaus01 29. Aug 2006 14:51

Re: TImage ruckelfrei verschieben
 
Hilft Dir das ein wenig weiter?

Zitat:

Determines whether the control’s image is rendered directly to the window or painted to an in-memory bitmap first.

property DoubleBuffered: Boolean;

Description

When DoubleBuffered is False, the windowed control paints itself directly to the window. When DoubleBuffered is True, the windowed control paints itself to an in-memory bitmap that is then used to paint the window. Double buffering reduces the amount of flicker when the control repaints, but is more memory intensive.

When a windowed control is a dock site and has an associated dock manager, it must be double-buffered
.


Grüße
Klaus

Cyberbob 29. Aug 2006 14:52

Re: TImage ruckelfrei verschieben
 
Wenn du das Flackern des Bildes meinst, kannst du im FormCreate des Formulars

Delphi-Quellcode:
[...]
DoubleBuffered := True;
[...]
verwenden. Das sollte Helfen!!

Karstadt 30. Aug 2006 09:28

Re: TImage ruckelfrei verschieben
 
Liste der Anhänge anzeigen (Anzahl: 1)
das hat nicht funktioniert...

Karstadt 30. Aug 2006 11:02

Re: TImage ruckelfrei verschieben
 
das liegt am Srocbox... was kann man da machen?... auf eine Panel passiert das nicht.

Cyberbob 30. Aug 2006 11:52

Re: TImage ruckelfrei verschieben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du musst immer das Control doublebuffern, auf dem sich das zu Zeichnende Control befindet. In deinem Fall musst du

sbx_bild.DoubleBuffered := True;

verwenden!

Siehe anhang...

[EDIT]Das Ganze gilt auch für Panels, Tabs und dergleichen! Diese müssen dann auch mit DoubleBuffered werden.[/EDIT]

Zacherl 30. Aug 2006 12:25

Re: TImage ruckelfrei verschieben
 
Zitat:

Zitat von Daniel B
Zitat:

Zitat von Florian Bernd
Indem du keine Image verschiebst, sondern z.B. mit DelphiX arbeitest.

[OT]Grandios![/OT] :wall:

Ist es auch ;) Ein Image zu verschieben ist Schwachsinn, da es einfach nicht dafür gemacht ist. Wenn man nicht mit DelphiX oder ähnlichem arbeiten will könnte man alternativ das Bitmap mit CopyRect verschieben und den Hintergrund neu füllen ...

Karstadt 30. Aug 2006 12:34

Re: TImage ruckelfrei verschieben
 
sbx_bild.DoubleBuffered := True; DIE LÖSUNG ;) Danke.. die andere Lösung mit DelphiX habe ich nicht ausprobiert, würde sicherlich auch funktioniern. Danke an alle.

Karstadt 30. Aug 2006 12:43

Re: TImage ruckelfrei verschieben
 
eine Frage habe ich noch. das verkleinen und vergrößern des bilder funktioniert in meinen Projektnicht. Ich weis nicht warum... kann mir da jemand weiter helfen. Danke.

Daniel B 30. Aug 2006 12:45

Re: TImage ruckelfrei verschieben
 
Mach bitte eine neuen Thread für diese Frage auf. Danke.

ferby 24. Sep 2006 15:07

Re: TImage ruckelfrei verschieben
 
Hallo,

Ich habe ein Problem,
das glaub hier dazu passt.

Und zwar:

Auf meiner Form gibt es X - Images.
Und nur ein einziges Image, das sich bewegt.


Umso größer X ist, umso mehr steigt die CPU auslasstung.
Also wenn ich 10 Images hab, ist die CPU bei 10%,
bei 30 Images bereits bei 100%.

Aber nur wenn DoubleBufferd true ist.

Warum wirken sich Images, die nur statisch sind und nicht bewegt sind,
so sehr auf die CPU aus, wenn ich ein Image bewege??



Hoffe ihr versteht mein Problem, bzw. Frage.

Gruß,
Ferby

Namenloser 24. Sep 2006 16:02

Re: TImage ruckelfrei verschieben
 
Weil bei doublebuffered zur Pufferung ein unsichtbares bitmap im speicher existiert, auf das immer ALLE komponenten gezeichnet werden. Anschließend wird dieses Bitmap auf das Form gezeichnet. Ohne doublebuffered muss nur ein bestimmter bereich neu gezeichnet werden, weil es kein Bitmap gibt, das KOMPLETT sein muss um aufs form gezeichnet zu werden. stattdessen werden die entsprechenden pixel direkt geändert. ich hoffe, das ist einigermaßen verständlich ^^"

ferby 24. Sep 2006 16:59

Re: TImage ruckelfrei verschieben
 
Hallo,

Danke,

so was in der Art habe ich mir schon gedacht,
war mir nur nicht sicher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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