Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Textout Position (https://www.delphipraxis.net/67248-textout-position.html)

LuckyLucas 11. Apr 2006 20:56


Textout Position
 
Moinsen,

meine Frage: Wenn ich canvas.textout benutze und als X/Y-Parameter jeweils eine 0 übergebe, sollte der Text doch eigentlich in der linken oberen Ecke liegen, gell? Aber er wird erst in einem bestimmten Abstand von links/oben geschrieben - wie kann man das vermeiden? Vorher lege ich auch die Height bzw. Size und Name der canvas.font fest, liegt's daran?

Oder besser gesagt (das, was ich haben möchte): Wie kann man einen Text in einem canvas von einer Bitmap ausgegeben, sodass er die komplette Höhe der canvas füllt?

Delphi-Freak 11. Apr 2006 21:04

Re: Textout Position
 
Das ist nicht so leicht...
vlt. helfen dir die Funktionen TextHeight bzw. TextWidth weiter...
somit kannst du dann die Höhe des Canvas auf das^^ setzen (wird dann aber auch nicht ganz das Bild ausfüllen)
sonst musst du wahrscheinlich die einzelnen Pixel (z. B. via ScanLine) abfragen und dann schauen, ob die oberste Zeile nur die Hintergrundfarbe hat, dann die zweite usw. und dann das Bild hinaufschieben...

LG, ich

Muetze1 12. Apr 2006 11:39

Re: Textout Position
 
Die Frage ist vor allem: Muss die Font-Höhe angepasst werden oder kann auch die Bitmapgrösse angepasst werden? Letzteres ist einfacher und wenn du das Bild woanders wieder malen willst, kannst du es ja unabhängig von seiner Grösse mit StretchBlt() bzw. CopyRect() auf die Zielfläche anpassen lassen.

LuckyLucas 12. Apr 2006 13:51

Re: Textout Position
 
Zitat:

sonst musst du wahrscheinlich die einzelnen Pixel (z. B. via ScanLine) abfragen und dann schauen, ob die oberste Zeile nur die Hintergrundfarbe hat, dann die zweite usw. und dann das Bild hinaufschieben
das habe ich mir auch schon überlegt, aber das ist so die letzte Möglichkeit,ich dachte, da gibts eine andere Methode oder Parameter, um das Problem zu lösen...und ja, der Buchstabe soll genauso groß, wie die Zeichenfläche.

Und wo wir grade dabei sind: Der Unterschied zwischen Size und Height des Font-Attributs ist ja eigentlich, dass Size die Größe der Buchstaben in pt, und Height die Größe in den tatsächlichen px angibt: Aber, ich habe das mal auf Screenshots nachgemessen: es ist immer genau andersrum, und dann auch noch mit negativen Werten bzw. auch wieder nicht...???

Delphi-Freak 12. Apr 2006 14:50

Re: Textout Position
 
Ja, soviel ich weiß müsste Size in pt und Height in px sein. EIn negativer Wert heißt jedoch, dass eigentlich das andere (Size -> Height bzw. Height -> Size) verwendet wird, und der Betrag nur eine Umrechnung ist...

LG, ich

Muetze1 12. Apr 2006 15:01

Re: Textout Position
 
... mit der DPI des Zielcanvas.

Alles nachzulesen in der Hilfe bei den entsprechenden Eigenschafte - samt Umrechnungsformel.

LuckyLucas 12. Apr 2006 16:33

Re: Textout Position
 
Naja, werd ich wohl die eigentliche Schrift zum Ursprung kopieren müssen, bleibt nichts anderes übrig.

Aber kann mir einer sagen, was das für ein freier Rand oben/unten und links/rechts beim Textout ist? Die Size/Height der eigentlichen Buchstaben stimmt, aber die Textwidth/Textheight ist jeweils um einiges größer (umfasst also diesen Rand, d.h. gehört zu der Schrift). Aber so etwas wie einen Zeilenabstand o.ä. gibt es doch eigentlich nicht... Hat jemand eine Idee?

Muetze1 12. Apr 2006 18:37

Re: Textout Position
 
Hatten wir gerade hier

Delphi-Freak 12. Apr 2006 19:36

Re: Textout Position
 
Mal die Frage: Wozu brauchst du das, gibt es vlt. auch eine andere Möglichkeit?

LG, ich

Muetze1 12. Apr 2006 21:24

Re: Textout Position
 
Zitat:

Zitat von Delphi-Freak
Mal die Frage: Wozu brauchst du das, gibt es vlt. auch eine andere Möglichkeit?

LG, ich

Wollte ich auch schon wissen, aber solche Fragen ignoriert er einfach komplett...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Seite 1 von 2  1 2      

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