Canvas Start() Stop()



  • Hi,
    in meinem progrämmchen brauche ich die Befehle Start() Stop(), weil ich 2 Zeichenoperationen hintereinander mache, aber nicht möchte, dass es dazwischen Refreshed. Aber irgendwie scheint es diese Befehle nicht zu geben ... gibts alternativen zu dem Befehl?
    Lock() Unlock() hab ich probiert, scheint nicht zu klappen...

    mfg

    Salim



  • Salim schrieb:

    weil ich 2 Zeichenoperationen hintereinander mache, aber nicht möchte, dass es dazwischen Refreshed.

    Das musst du mal genauer erklären.



  • Also, vielleicht hilft mir das weiter. Was ist der Unterschied zw. CLX und VCL. Es gibt ja immer so 2 Hilfeteile. Bei dem einen (CLX) gibt es den Befehl Start() und Stop(), bei VCL gibts das nicht. Daraus schließ ich mal, dass ich mit meinem BCB6 VCL benutze, wie kann ich zu CLX umwechseln?

    mfg

    Salim



  • Also ich habe gerade etwas in der Hilfe gesucht, und mir ist folgendes aufgefallen: ich kann ein CLX Projekt extra erstellen indem ich File->New->CLX Application mache, aber ich hab schon ein fettes projekt angefangen und wusste davon nix. Kann man einfach das "konvertieren".
    Ich habe davor immer mit BCB v 1.0 gearbeitet, und arbeite erst seit kurzem mit der neuen Version 6. Finde in der Hilfe aber irgendwie keine Erklärung von den wesentlichen Unterschieden von CLX und VCL. Könnt ihr mir das vielleicht erklären :>?

    mfg

    Salim



  • Die CLX ist, etwas vereinfacht gesagt, eine crossplattform-kompatible Untermenge der VCL.

    Automatisch konvertieren kannst du dein Projekt nicht. Evtl. reicht es aus, die Projektdatei (*.bpr) durch eine Kopie einer solchen aus einem CLX-Projekt zu ersetzen und dann die includes in den Headerdateien des Projektes anzupassen (vcl.h nach clx.h usw.), ansonsten musst du halt den Code aus dem VCL-Projekt rüberkopieren.

    Aber: bist du sicher, dass dir die Start/Stop-Methoden des CLX-Canvas tatsächlich weiterhelfen? Denn die Hilfe sagt ja, dass du nicht wirklich Kontrolle darüber hast, da sie beim Zeichnen automatisch aufgerufen werden.

    Vielleicht solltest du doch nochmal genauer erklären, was du machen bzw. erreichen willst.



  • Also, ich habe ein TPaintBox Objekt, und 2 Offscreen Bitmaps. Ich zeichne nacheinander - einmal mit Draw() einmal mit StretchDraw() - die verschiedenen Objekte in die PaintBox. Klappt zwar auch, aber die zweite zeichnung flimmert, da zu erst die erste gezeichnet wird, dann wird sozusagen das Bild "angezeigt"/"auf dem Bildschirm gezeichnet" und dann das gleiche mit dem 2ten Offscreen Bitmap.
    Und ich dachte das mit Start() Stop() lösen zu können.



  • Üblicherweise zeichnet man alles auf das Offscreen-Objekt und kopiert dessen Inhalt anschliessend komplett auf das Anzeigeobjekt.
    Wozu hast du Offscreen-Bitmaps, wenn du doch direkt auf die Paintbox zeichnest?



  • Aber ich möchte so viel wie möglich sparen, weil der misst Befehl StretchDraw mächtig auf die Haube drückt (wow, das hab ich ja super ausgedrückt LOL).
    Ich habe mehrere Ebenen, deswegen die Offscreen-Bitmaps.



  • Die Begründung bzw. Erklärung verstehe ich nicht.


Anmelden zum Antworten