![]() |
Canvas im Hintergrund zeichnen / auslesen
Guten Morgen.
Mit folgendem Code schreibe und lese ich ein Canvas Feld aus. Das ganze funktioniert leider nur solange das Programm im Vordergrund ist. Wie kann ich es machen das es auch im Hintergrund läuft ?
Delphi-Quellcode:
//.... for i := 0 to 448 do PaintBox1.Canvas.TextOut(i,0,' '); MyTime := Time(); timebuffer := FormatDateTime('hh:mm',myTime); PaintBox1.Canvas.TextOut(0,0,Edit1.Text); PaintBox1.Canvas.TextOut(214,0,timebuffer); PaintBox1.Canvas.TextOut(245,0,Edit2.Text); Paint; //------------------------------------------------------------------ // Zeile 0 lesen pos := 0; for i := 0 to 55 do Data[i] := #0; // Setze Data auf 0 for j := 0 to 55 do begin if PaintBox1.Canvas.Pixels[j+pos,0] = clBlack then bit[0] := 1 else bit[0] := 0; if PaintBox1.Canvas.Pixels[j+pos+1,0] = clBlack then bit[1] := 1 else bit[1] := 0; if PaintBox1.Canvas.Pixels[j+pos+2,0] = clBlack then bit[2] := 1 else bit[2] := 0; //... Danke, Markus |
Re: Canvas im Hintergrund zeichnen / auslesen
Wenn das Programm verdeckt ist, wird auch nicht gezeichnet ( ist dann ja auch überflüssig)
|
Re: Canvas im Hintergrund zeichnen / auslesen
hmm..
Welche möglichkeit gibt es denn noch ? Ich muss die Pixel auslesen und per ComPort übertragen für eine Anzeige. Der Text wird im Canvas geschrieben und dann lese ich die Pixel aus und packe die fürs senden zusammen. lg, markus |
Re: Canvas im Hintergrund zeichnen / auslesen
Erstelle dir einen Thread im Program der auf eine Bitmap zeichnet.
Zur Not könnte man auch an Stelle eines Threads einen Timer verwenden. |
Re: Canvas im Hintergrund zeichnen / auslesen
Nicht ausprobiert, aber ein "PaintBox1.invalidate" zwingt eigendlich zum neuzeichnen.
Gerd |
Re: Canvas im Hintergrund zeichnen / auslesen
Trenne die Daten von der Darstellung.
|
Re: Canvas im Hintergrund zeichnen / auslesen
Zitat:
Ein Canvas bzw. DC kann immer nur das liefern, was auch gerade in dem zugehörigen Rect dargestellt wird - da führt kein Weg dran vorbei. Deswegen ist es auch absolut üblich ein Bitmap zu führen dass die aktuelle Anzeige enthält, und nur bei Bedarf (OnPaint) auf die PaintBox geblitted wird. Aus dem Bitmap kannst du dann natürlich auch die Daten zum senden holen ohne sie je anzeigen zu müssen. |
Re: Canvas im Hintergrund zeichnen / auslesen
Zum Zeichnen einer Canvas im Hintergrund verwendet man die Canvas eines TBitMap Objektes.
Alles weitere hierzu steht in der OH |
Re: Canvas im Hintergrund zeichnen / auslesen
Was soll der Quatsch? Das ist ungefähr genauso als, wenn ich die Zeitung morgens aus dem Briefkasten holen, sie zerreiste und am Küchentisch wieder zusammensetze, weil ich sie lesen will.
Trenn die Daten von der Drastellung und hol die Daten dann nicht aus der Paintbox, sondern daher wo du die Daten speicherst. |
Re: Canvas im Hintergrund zeichnen / auslesen
@Luckie: auf welchen Beitrag beziehst Du Dich denn jetzt?
|
Re: Canvas im Hintergrund zeichnen / auslesen
Ich denke er möchte darauf hinaus, dass es Sinn machen könnte nicht die Bilddaten, sondern die Daten die das Programm zu einem Bild macht zu verschicken. Der Empfänger soll dann das eigentliche Zeichnen übernehmen.
Da hier aber Kommunikation via RS232 im Spiel ist, kann es gut sein dass der Empfänger überhaupt gar keine Möglichkeiten dazu hat, da es sehr wahrscheinlich kein PC ist. Meine Glaskugel flüstert wirres Zeug über Drucker und so... :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 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