TextOut in Paint von abgeleiteter Klasse von TWPOImage

  • Hallo,

    ich habe eine eigene Klasse von TWPOimage abgeleitet. Ich zeichne in der Methode Paint mit bereits vorhandenen Methoden auf die Canvas (Übergabeparameter toCanvas und BoundsRect). Das zeichnen selber klappt sehr gut. Nur das TextOut mach Probleme.
    Bei der von Paint Übergebenen Canvas verhält sich die Methode TextOut bzgl. der Parameter X und Y nicht wie erwartet X=Links Y=Oben sondern X=Links und Y=Untern vom Text.
    Das liegt soweit ich es herausbekommen konnte wohl mit unter an dem MapMode der Canvas (MM_ANISOTROPIC). Der Workaround wäre die Berechnungen für Y entsprechend anzupassen, wenn der MapMode nicht der erwartete ist. Da es aber sehr viele TextOut's in den ganzen Methoden sind, möchte ich gerne wissen, ob es eine Möglichkeit gibt das kurzfristig umzuschalten, so das TextOut(X,Y,Text) wieder das erwartete Verhalten einer Canvas mit MapMode MM_TEXT hat. Den MapMode umzustellen klappt nicht, da dann alle Koordinaten (BoundsRect) nicht mehr korrekt sind.

    Vielen Dank für die Hilfe, Chris

  • Hallo,

    Ich denke es liegt vielmerhr am textalign. SetTextAlign(Canvas.Handl, 0) sollte dies problem beheben.

    Der mapmode wird die grösse des textes beeinflussen. Sie müssen die höhe (Canvas.Font.Height) entsprechend der zeichen auflösung berechnen. Diese ist in WPRichText.Memo.CurrentXPixelsPerInch (normalerweise ist dies 600)

    Viele Grüsse,

    Julian Ziersch