![]() |
Text spiegeln
Hallo zusammen,
habe das Problem, daß ich einen Text spiegeln auf ein Canvas spiegeln will. Bei Bildern gibt es ja die Funktion StretchBlt(). Gibt es sowas für Texte? Normal gebe den Text über ShowText() aus. Hoffe mir kann da jemand weiterhelfen. gruß, moony |
Re: Text spiegeln
Zitat:
Einfach auf einen MemDC, dann auf den echten blitten ... fertsch! |
Re: Text spiegeln
schreibe doch den text in ein Bitmap
Delphi-Quellcode:
Bitmap.canvas.TextOut ();
|
Re: Text spiegeln
@Olli:
Diese Funktion ist zum spiegeln von Bitmaps. Und da mein Text als Text an das Canvas geschickt wird. Ansonsten würde es die Texteigenschaften verlieren. @Kroko: Über den TextOut() kann ichaber nicht den Text spiegeln. |
Re: Text spiegeln
Er meinte, du sollst den Text in ein Bitmap ausgeben und dann das Bitmap drehen (denke ich).
|
Re: Text spiegeln
Zitat:
![]() |
Re: Text spiegeln
Jedoch besteht ein weiteres Problem bei TextOut(), und zwar daß diese Funktion keinen Zeilenumbruch macht. Was z.B. der ExtTextOut() macht.
|
Re: Text spiegeln
Danke Leute, aber ich habe das jetzt anders gelöst:
Ich zeichne den Text auf ein Image.Canvas, erstelle mit dieser Funktion ein Bitmap:
Delphi-Quellcode:
und spiegel das Ganze mit der StretchBlt().
procedure DrawImage(Canvas: TCanvas; DestRect: TRect; ABitmap: TBitmap);
var Header, Bits : Pointer; HeaderSize : DWord; BitsSize : DWord; begin GetDIBSizes(ABitmap.Handle, HeaderSize, BitsSize); GetMem(Header, HeaderSize); GetMem(Bits, BitsSize); try GetDIB(ABitmap.Handle, ABitmap.Palette, Header^, Bits^); StretchDIBits(Canvas.Handle, DestRect.Left, DestRect.Top, DestRect.Right - DestRect.Left, DestRect.Bottom - DestRect.Top, 0, 0, ABitmap.Width, ABitmap.Height, Bits,TBitmapInfo(Header^), DIB_RGB_COLORS, SRCCOPY); finally FreeMem(Header); FreeMem(Bits); end; end; :dancer2: Das einzige Problem was jetzt noch besteht ist, daß ich zwischendurch Textreste vom Spiegeln habe... |
Re: Text spiegeln
Zitat:
|
Re: Text spiegeln
Eigentlich: neue Frage, neuer Thread - aber egal:
1. So weit ich weiß, kann ExtTextOut auch keinen Umbruch. Dafür musst du DrawText oder DrawTextEx nehmen. 2. Für das Spiegeln könntest du dir auch mal die API-Funktionen SetWindowOrg/Ext und SetViewportOrg/Ext ansehen (oder SetWorldTransform). Damit müsste man auch gespiegelte Dinge machen können. Sind aber nicht ganz einfach zu verstehen. //EDIT: Roten Kasten ignoriert 8) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz