![]() |
[Image.Canvas.TextOut] €-Zeichen "malen"
Ich habe die Schriftart BN Machine und will ein €-Zeichen auf ein Image "schreiben"!
Allerdings übergeht er dass und zeichnet anstelle gar nichts... Und ich habe in einem Label und bei Micorsoft Word das €-Zeichen mit der Schriftart BN MAchine getestet! Und es geht! |
Re: [Image.Canvas.TextOut] €-Zeichen "malen"
Ein Label ist ein TGraphicControl und benutzt intern auch TextOut.
Zeig mal deinen Code. |
Re: [Image.Canvas.TextOut] €-Zeichen "malen"
Delphi-Quellcode:
const MONEY: array[1..26] of Extended = (0.01, 0.20, 0.50, 1, 5, 10, 20, 50, 100, 200, 300, 400, 500,
1000, 2500, 5000, 7500, 10000, 12500, 15000, 20000, 25000, 50000, 100000, 150000, 250000); procedure TfMain.bNewGameClick(Sender: TObject); var i, rnd : Integer; BM_MoneyNum : array [1..26] of Byte; Nums : TNumsArray; begin if not Running then begin {...} LeftMoney.Canvas.Brush.Style := bsClear; LeftMoney.Canvas.Font.Name := 'BN Machine'; LeftMoney.Canvas.Font.Height := 16; RightMoney.Canvas.Brush.Style := bsClear; RightMoney.Canvas.Font.Name := 'BN Machine'; RightMoney.Canvas.Font.Height := 16; for i := 0 to 12 do begin LeftMoney.Canvas.Draw(0, i * 21 + i * 3, Plakette_0.Picture.Graphic); LeftMoney.Canvas.TextOut((LeftMoney.Width - LeftMoney.Canvas.TextWidth(FloatToStr(MONEY[i + 1]) + ' €')) div 2, i * 24 + 5, FloatToStr(MONEY[i + 1]) + ' €'); LeftMoney.Repaint; RightMoney.Canvas.Draw(0, i * 21 + i * 3, Plakette_0.Picture.Graphic); RightMoney.Canvas.TextOut((RightMoney.Width - RightMoney.Canvas.TextWidth(FloatToStr(MONEY[i + 14]) + ' €')) div 2, i * 24 + 5, FloatToStr(MONEY[i + 14]) + ' €'); RightMoney.Repaint; Sleep(100); end; {...} end; |
Re: [Image.Canvas.TextOut] €-Zeichen "malen&a
Welchen Wert (Ordinal) hat'n das €?
Eventuell paßt der ZeichenCode nicht? im Unicode hat dieses z.B. den Wert 8364 und das paßt z.B. nicht in einen AnsiString ._. [add] schau mal in der Zeichentabelle (Programm Charmap) nach und verwende direkt diese Code |
Re: [Image.Canvas.TextOut] €-Zeichen "malen"
Tu das Repaint raus.
|
Re: [Image.Canvas.TextOut] €-Zeichen "malen"
@3of8
Also an dem repaint kann es nicht liegen, weil ich es auch an anderen Stellen mache (ohne repaint) Zitat:
Zitat:
[edit]Also ein Chr(128) anstelle des € hats nicht getan :( |
Re: [Image.Canvas.TextOut] €-Zeichen "malen&a
Zitat:
z.B. ein Edit mit der Schriftart und dem Zeichen und dann.
Delphi-Quellcode:
oder mal mit
Edit1.Text := IntToStr(Ord(Edit1.Text[1]));
Delphi-Quellcode:
überprüfen.
Edit1.Text := '€';
und du bist dir auch sicher, daß der Text innerhalb des Bildes liegt und nicht nur ä bissl außerhalb? [add] OK, ich seh grad es sollte zentriert sein ._. PS: einmal berechnen reicht auch schon aus :)
Delphi-Quellcode:
S := FloatToStr(MONEY[i + 14]) + ' €';
RightMoney.Canvas.TextOut((RightMoney.Width - RightMoney.Canvas.TextWidth(S)) div 2, i * 24 + 5, S); |
Re: [Image.Canvas.TextOut] €-Zeichen "malen"
Das kann mit Repaint eigentlich gar nicht gehen, da dann das Bild komplett überzeichnet wird.
|
Re: [Image.Canvas.TextOut] €-Zeichen "malen&q
Zitat:
|
Re: [Image.Canvas.TextOut] €-Zeichen "malen"
Ziemlichsicher (ein a zeichnet er :D )
Ich werds mal mit dem Edit prüfen ^^ Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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