Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Canvas + DrawText: Geht mal und mal nicht (https://www.delphipraxis.net/152247-canvas-drawtext-geht-mal-und-mal-nicht.html)

RSE 16. Jun 2010 11:44

Canvas + DrawText: Geht mal und mal nicht
 
Hallo!

Ich kann mir nicht erklären warum mein Text manchmal angezeigt wird und manchmal nicht.

Was tue ich?
Ich zeichne mit DrawText auf TBitmap.Canvas und kopiere das Ergebnis danach mit ZielCanvas.Draw auf mein ZielCanvas.

Wo liegt das Problem?
In meiner Entwicklungsumgebung Delphi 5 funktioniert das im Debug-Modus wunderbar. Die fertige exe läuft auch wunderbar, wenn ich sie auf meinem Rechner (WinXP Pro 2002 32bit SP3 in einer VirtualMachine von VMWare) öffne. Ebenso läuft sie auf meinem Rechner nativ unter Windows 7 Pro 64bit. Auf dem Rechner, auf dem sie zum Einsatz kommen soll (WinXP Pro 2002 32bit SP3), wird der Text nicht angezeigt. Die Berechnung der Größe des Textes scheint aber zu funktionieren (gleiche Vorgehensweise wie beim Zeichnen, lediglich wird DrawText mit DT_CALCRECT aufgerufen). Es kommt keine Fehlermeldung.

Irgendwelche Ideen?

hoika 16. Jun 2010 11:48

AW: Canvas + DrawText: Geht mal und mal nicht
 
Hallo,

wo genau rufst dein Zeichnen auf (stelle im Code).
Benutze OutputDebugString, um das Problem einzugrenzen
(Anzeige z.B. mit Debugging Tools von MS)


Heiko

Namenloser 16. Jun 2010 12:15

AW: Canvas + DrawText: Geht mal und mal nicht
 
Mal ein paar Anstöße:
  • Schriftart nicht vorhanden?
  • Stört ein unterschiedlicher DPI-Wert?
  • Welche Farbtiefe ist eingestellt?
  • Welche Sprache wird ausgegeben und welche Sprache hat das Betriebssystem? Irgendwelche Sonderzeichen?
  • Funktioniert es, wenn du statt DrawText() Canvas.TextOut() verwendest?
Ist natürlich alles reine Spekulation...

uligerhardt 16. Jun 2010 12:21

AW: Canvas + DrawText: Geht mal und mal nicht
 
Klappt
  1. das DrawText auf's Bitmap nicht oder
  2. das Zeichnen des Bitmaps auf ZielCanvas?
Das könntest du z.B. mit
Delphi-Quellcode:
bmp.SaveToFile
im Auswerten-Dialog ausprobieren.

RSE 16. Jun 2010 12:44

AW: Canvas + DrawText: Geht mal und mal nicht
 
Bmp.SaveToFile ist noch ein guter Ansatzpunkt. Momentan verfolge ich die Vermutung, dass es was mit fehlenden Windows-Updates zu tun hat.
-Die Schriftart kanns nicht sein, die ist beim Standard belassen.
-Sprachenprobleme können es nicht sein, da überall das gleiche Win läuft und die gleichen Texte verwendet werden.
-Farbtiefe werde ich mal kontrollieren
-Dpi: Ich weiß zwar, dass es dazu eine Einstellung gibt, aber wo kann ich die einsehen/ ändern?

RSE 16. Jun 2010 13:25

AW: Canvas + DrawText: Geht mal und mal nicht
 
Die Farbtiefe wars!

Ich habe auf dem Bitmap eine transparente Farbe definiert, um nicht den gesamten Hintergrund zu übermalen auf dem Zielcanvas. Als Wert hatte ich $010000 ausgewählt. Wer benutzt diese Farbe schon? Problem: bei 16bit Farbtiefe wird dieser Wert auf schwarz gemappt und somit war meine Schrift auch transparent. Ich habe nun als transparente Farbe $00FBFF gewählt, diese wird auch bei 16bit Farbtiefe nicht auf gelb gemappt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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