AGB  ·  Datenschutz  ·  Impressum  







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

TImage bzw. TPaintbox refresh Problem

Ein Thema von darkdonald · begonnen am 8. Mai 2008 · letzter Beitrag vom 13. Mai 2008
Antwort Antwort
darkdonald

Registriert seit: 12. Apr 2008
18 Beiträge
 
#1

TImage bzw. TPaintbox refresh Problem

  Alt 8. Mai 2008, 13:34
Hallo!!

Ich schreibe grad ein Programm, dass mir einige Informationen auf dem Display meiner G15 Tastatur anzeigen soll. Dazu wird einfach mit Canvas eine Paintbox (bzw. Image) 'gezeichnet' und diese anschliessend an die G15-Komponente übergeben. Das Tool soll nur im Tray-Bereich erscheinen, also normalerweise ohne eigenes Fenster laufen.

Wenn ich nun mit einer Paintbox arbeite, wird das Display nur solange aktualisiert, wie das Fenster auf dem Desktop sichtbar ist, ist es verdeckt oder nur im Tray, zeigt es nichts mehr an... Eigentlich logisch bei einer Paintbox. Mit TImage könnte ich das relativ leicht umgehen, allerdings würde ich gerne bei der Paintbox bleiben, erstens aus Performancegründen und zweitens weil dann das lästige (und zeitraubende) löschen bzw. neuzeichnen geänderter Bereiche entfällt...

Gibt es irgendeine Möglichkeit, die Paintbox darzustellen auch wenn das Programm minimiert ist??

Ich hoffe, jemand weiss Rat...

Gruss
Darkdonald
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#2

Re: TImage bzw. TPaintbox refresh Problem

  Alt 9. Mai 2008, 02:29
Warum malst Du Dir nicht ein Bitmap im Speicher und schaufelst es dann auf das Display. So ein Display hat doch bestimmt ein Handle. Dann bist Du unabhängig von der Sichtbarkeit des Fensters.

Ansonsten google doch mal nach lglcd_dda.rar. Das ist auch ein Beispiel dabei.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: TImage bzw. TPaintbox refresh Problem

  Alt 9. Mai 2008, 02:39
Das Display selber kann ohnehin nur ca. 10-15fps darstellen. Das zusammen mit der kleinen Größe des Bildes macht das "zeitraubende Löschen" zu "performancetechnisch total egal". Die o.g. Lib erwartet, wenn sie die selbe ist, die ich mal ausprobiert hab (ist was her, ich weiss den Namen nicht mehr genau) ohnehin ein TBitmap als Quelle, so dass du getrost darauf zurückreifen solltest.
Man könnte auch noch tiefer gehen, und die Logitech DLL direkt ansprechen (wie, ist u.a. o.g. Lib zu entnehmen). In diesem Fall wird ein Array von Bytes übergeben - jedoch gibt es keine fertigen "Zeichenroutinen" für diese Struktur =)
"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
darkdonald

Registriert seit: 12. Apr 2008
18 Beiträge
 
#4

Re: TImage bzw. TPaintbox refresh Problem

  Alt 13. Mai 2008, 15:17
Hallo!!

Bis jetzt habe ich mit der G15-Komponente (tg15lcd) von Smurfy gearbeitet. Die erwartet einen beliebigen Canvas als Quelle.

Ich habe mir mal die o.g. Lib angesehen. Ist soweit eigentlich eine schöne Sache, weil man direkt auf das Display zugreifen kann, also ohne die Logitech-Programme im Hintergrund. Allerdings ist es (glaub ich) nicht möglich eine Bitmap o.ä. zuzuweisen. Die Lib arbeitet leider NUR mir dem 'Array of Byte'. Oder habe ich da etwas übersehen? Gibt es evtl. eine fertige Lösung, eine Bitmap in das benötigte Array umzurechnen? Ich habe es gestern mal selbst versucht, aber meine Versuche wurden leider schon im Keim erstickt^^

Gruss
dd
  Mit Zitat antworten Zitat
darkdonald

Registriert seit: 12. Apr 2008
18 Beiträge
 
#5

Re: TImage bzw. TPaintbox refresh Problem

  Alt 13. Mai 2008, 16:50
Ich habe gerade mal versucht das ganze nicht mit TImage sondern mit TBitmap zu realisieren. Irgendwie komm ich nicht weiter

Hier mal der Code (Beispiel):

TImage (funktioniert):
image1.Canvas.TextOut(0,0,'Blablabla');
LcdG15.LcdCanvas := image1.Canvas;
LcdG15.SendToDisplay();

TBitmap (funktioniert NICHT, produziert einen leeren Screen):
bitmap1 := TBitmap.Create;
bitmap1.Canvas.TextOut(0,0,'Blablabla');
LcdG15.LcdCanvas := bitmap1.Canvas;
LcdG15.SendToDisplay();
bitmap1.free;


@Medium: Wie ist das mit dem Handle gemeint?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: TImage bzw. TPaintbox refresh Problem

  Alt 13. Mai 2008, 16:57
Und wenn Du mal Höhe und Breite der Bitmap setzt?
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
darkdonald

Registriert seit: 12. Apr 2008
18 Beiträge
 
#7

Re: TImage bzw. TPaintbox refresh Problem

  Alt 13. Mai 2008, 17:30
OMG, es kann so einfach sein. Thx für den Tip^^ Nu klappt's...
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:23 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