AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas im Hintergrund zeichnen / auslesen

Ein Thema von ljmarkus · begonnen am 4. Mai 2009 · letzter Beitrag vom 4. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
ljmarkus

Registriert seit: 14. Apr 2007
Ort: Göttingen
46 Beiträge
 
Delphi 7 Personal
 
#1

Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 06:45
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 06:48
Wenn das Programm verdeckt ist, wird auch nicht gezeichnet ( ist dann ja auch überflüssig)
Markus Kinzler
  Mit Zitat antworten Zitat
ljmarkus

Registriert seit: 14. Apr 2007
Ort: Göttingen
46 Beiträge
 
Delphi 7 Personal
 
#3

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 06:53
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
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 07:06
Erstelle dir einen Thread im Program der auf eine Bitmap zeichnet.
Zur Not könnte man auch an Stelle eines Threads einen Timer verwenden.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 09:28
Nicht ausprobiert, aber ein "PaintBox1.invalidate" zwingt eigendlich zum neuzeichnen.

Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 09:54
Trenne die Daten von der Darstellung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 10:13
Zitat von bernau:
Nicht ausprobiert, aber ein "PaintBox1.invalidate" zwingt eigendlich zum neuzeichnen.

Gerd
Das führt letztlich nur die API InvalidateRect() mit dem Rect der Paintbox aus. Windows weiss aber wenn ein Control bzw. Canvas verdeckt ist, und zeichnet dann (edit: wenn überhaupt) das oberste verdeckende neu. Sonst würde das auch ganz fürchterlich flackern.

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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Dipl Phys Ernst Winter

Registriert seit: 14. Apr 2009
Ort: Jena
103 Beiträge
 
Delphi 3 Professional
 
#8

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 12:48
Zum Zeichnen einer Canvas im Hintergrund verwendet man die Canvas eines TBitMap Objektes.

Alles weitere hierzu steht in der OH
Autor: DP Ernst Winter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 13:53
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Canvas im Hintergrund zeichnen / auslesen

  Alt 4. Mai 2009, 13:54
@Luckie: auf welchen Beitrag beziehst Du Dich denn jetzt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz