Autor |
Beitrag |
myukew
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 24.01.05 15:54
wenn man mit canvas (aufwändigere,) animierte graphik macht kommt es unweigerlich zu flimmern bei löschen und neu zeichnen des objekts. gibt es einen weg das loszuwerden?
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mo 24.01.05 15:56
ja, du könntest probieren manche routinen mit assembler zu schreiben, vielleicht gibt es auch eine bessere image-komponente, aber probier ersteres mal!
MfG, Scorpion!
_________________ Aus dem Urlaub zurück!
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Mo 24.01.05 16:01
2 Möglichkeiten:
1.) DoubleBuffering
2.) Über GDI programmieren
AXMD
|
|
myukew 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 24.01.05 16:06
wie funktioniert double buffering (ich weiß was es is, ich habs ma mit qbasic gemacht)?
tja assembler, sowas müsste man lernen... immer wieder sind die lösungen assemblersnippets...
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 24.01.05 16:45
Schreib doch einfach mal in deine OnCreate-Routine deines Formulars
Delphi-Quelltext 1:
| doublebuffered := true; |
Wenn dein Image auf nem Panel o.Ä. ist, musst du eben Panel1.Doublebuffered := true schreiben.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 24.01.05 17:11
Direkte GDI-Ausgaben auf dem Canvas sind immer langsam. Mach es über ein Bitmap im Speicher, auf das du zeichnes und bei Bedafr auf den Canvas kopierst.
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mo 24.01.05 20:03
Luckie hat folgendes geschrieben: | Direkte GDI-Ausgaben auf dem Canvas sind immer langsam. Mach es über ein Bitmap im Speicher, auf das du zeichnes und bei Bedafr auf den Canvas kopierst. |
beim besten willen, icg glaube nicht, dass das myukew kann!
aber eine idee wäre es!
_________________ Aus dem Urlaub zurück!
|
|
DaRkFiRe
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: Mo 24.01.05 20:14
@Luckie: Das ist in der Tat die schnellste Methode! Ist quasi eigenes Double-Buffering...
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Mo 24.01.05 20:34
ScorpionKing hat folgendes geschrieben: | beim besten willen, icg glaube nicht, dass das myukew kann! |
Und jemand, der Assembler für sowas empfiehlt, kann es dann?
Die Zeichenroutinen sind identisch, denn das Bitmap hat auch nur einen Canvas. Und das Kopieren des Bitmaps auf den Ziel-Canvas mit Draw() oder BitBlt() ist ja nun wirklich trivial und hundertfach im Forum zu FINDEN
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
ScorpionKing
      
Beiträge: 1150
Win XP
|
Verfasst: Mo 24.01.05 20:36
tommie-lie hat folgendes geschrieben: | ScorpionKing hat folgendes geschrieben: | beim besten willen, icg glaube nicht, dass das myukew kann! | Und jemand, der Assembler für sowas empfiehlt, kann es dann?
Die Zeichenroutinen sind identisch, denn das Bitmap hat auch nur einen Canvas. Und das Kopieren des Bitmaps auf den Ziel-Canvas mit Draw() oder BitBlt() ist ja nun wirklich trivial und hundertfach im Forum zu FINDEN |
ok, ich gebe zu: guter einwand.
stimmt, daran hatte ich noch gar nicht gedacht.
_________________ Aus dem Urlaub zurück!
|
|
DaRkFiRe
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: Mo 24.01.05 20:58
Anmerkung: natürlich sind die Routinen identisch, nur jedes Mal, wenn der Canvas verändert wird, muss er in den Gerätekontext des jeweiligen Controls geschrieben werden und das verursacht auf Dauer das Flimmern.
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
myukew 
Hält's aus hier
Beiträge: 14
|
Verfasst: Di 01.02.05 16:34
ok, mach langer zeit hab ichs mal wieder ins forum hier geschafft
gut... in ein bitmap zeichnen. an sowas hatte ich auch schon gedacht... wenn die routinen identisch sind isses ja in der tat nich so schiwierig! ich werd mir das also mal in der hilfe ankucken und bei fragen eifach noch ma hier was posten.
danke auf jeden fall erstmal
|
|