Hallo liebe Community!
Ich arbeite nun schon seit mehreren Wochen an einem Projekt. Ich versuche ein Programm zu schreiben, welches in etwa wie (falls bekannt) ein Terminal für IBM Archtitekturen (z.B. AS/400) funktioniert.
Jeder der schonmal an einem solchen Terminal gesessen hat, weiß, dass es die funktion besitzt eine genaue Anzahl an Zeichen (80 Spalten, 24 Zeilen) exakt gestretched in verschiedenen Farben ect anzuzeigen.
Ich versuche hierzu das ganze mit Canvas: Da jeder Buchstabe von Farbe und Hintergrundfarbe anders definiert sein könnte vom Server, muss ich bisher leider jeden einzelnen Buchstaben einzeln Zeichnen lassen. Hierzu lasse ich zwei Schleifen (0 bis 79) und (0 bis 23) durchlaufen und zeichne den entsprechenden Buchstaben in eine TBitmap. Ist das Bild vollständig, lasse ich es aus dem TBitmap-Puffer mir auf eine Form zeichnen.
Somit kann ich auch auf die Form1.OnPaint Methode reagieren, indem ich das Bild nicht jedes mal neu erstelle, sondern aus dem Puffer neu zeichnen lasse.
Nun aber zu dem Problem: Die Dauer!
Wer mitgerechnet hat merkt, dass bei jeder Aktion, die irgendwie das Bild verändert, das Bild auch neu gezeichnet werden muss (z.B. Cursor wird bewegt, Taste gedrückt, o.Ä.)
Dies bedeutet, das Programm zeichnet alle 1920 Canvas-"Bildchen" neu in den Puffer und zeichnet diesen wiederum auf die Form.
Gibt es eine Möglichkeit das ganze schneller machen zu können?
Ich kann heute nachmittag nach der Arbeit auch gerne noch den zugehörigen Code posten, den habe ich aber im Moment leider nicht hier. Doch das ganze gibt mir natürlich keine Ruhe!
Habe natürlich auch schon die letzten 3 Tage gegoogelt und bin dabei auf Methoden mit DirectX gestoßen, was ich aber (rein logisch gesehen) vielleicht für ein reines "Green-Screen" Programm übertrieben halte, schließlich braucht IBM's Terminal auch kein DirectX (oder?

)
Vielleicht hat ja jemand eine passende Idee.
Wie gesagt: Code folgt heute mittag hier =)
Vielen Dank!
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 03.12.2009 um 09:52