Autor Beitrag
asbito
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mi 20.01.10 21:24 
Hi leute ich habe eine frage wenn man ein einefache bewegung mittels timer erstellt, kann diese ja nur funktionieren, indem man ein refresh durchführt dies führt aber zum kompletten löschen dev canvas fläche. gibt es eine andere möglichkeit dafür? Habe st copyrect versucht aber da habe ich das gleiche problem.

lg asbito.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mi 20.01.10 21:50 
Hi :)

Womit arbeitest du? canvas, Form1.Canvas, Image1.canvas oder Paintbox1.canvas?
  • Canvas: Du verwendest das Canvas von Form1(weißt es aber nicht?). Siehe:
  • Form1.canvas: Andere Systemteile malen unkontrolliert an die selbe Stelle wie du. Wenn du es sauber machen willst, lass' es^^
  • Image1.Canvas: Hier sollte das Problem schon nicht auftreten. Dennoch; TImage gibt dir nicht die volle Kontrolle und ist meißtens nicht die Lösung. Was immer du zeihnest, soll sich ja einigermaßen flott bewegen und nicht flackern, da macht TImage zu viel überflüssiges.
  • Paintbox1.Canvas: TPaintbox gibt dir die vollständige Kontrolle über den Zeichenprozess. Es benachrichtigt dich jedes mal, wenn Windows oder sonst etwas einen Redraw verursacht(zB. Formular drüberziehen), und ruft eine deiner Mehtoden auf. Du bringst dann immer genau das auf den Bildschirm, was du haben willst.
    dazu nimmst du ein Objekt der Klasse TBitmap aus der unit Graphics, und hältst es virtuell im Speicher. Alles, was dauerhaft zu sehen sein soll, kommt in diese Bitmap, und bei jedem Redraw zeichnest du zuerst diesen Hintergrund auf, dann bewegliche Elemente wie einen Ball o.ä..
    Genaueres dazu gibt es hier über die Suche. :)

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Mo 01.02.10 23:30 
ich glaube in deinem Fall würde sich eher die Nutzung eines unsichtbaren Bitmaps als Buffer anbieten. Das wäre z.B. für so Dinge wie das Linie-Ziehen bei Paint eine Möglichkeit.