AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi [Image.Canvas.TextOut] €-Zeichen "malen"
Thema durchsuchen
Ansicht
Themen-Optionen

[Image.Canvas.TextOut] €-Zeichen "malen"

Ein Thema von xZise · begonnen am 31. Jul 2006 · letzter Beitrag vom 31. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[Image.Canvas.TextOut] €-Zeichen "malen"

  Alt 31. Jul 2006, 16:26
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!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [Image.Canvas.TextOut] €-Zeichen "malen"

  Alt 31. Jul 2006, 16:28
Ein Label ist ein TGraphicControl und benutzt intern auch TextOut.

Zeig mal deinen Code.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: [Image.Canvas.TextOut] €-Zeichen "malen"

  Alt 31. Jul 2006, 16:31
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;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#4

Re: [Image.Canvas.TextOut] €-Zeichen "malen&a

  Alt 31. Jul 2006, 16:32
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: [Image.Canvas.TextOut] €-Zeichen "malen"

  Alt 31. Jul 2006, 16:33
Tu das Repaint raus.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: [Image.Canvas.TextOut] €-Zeichen "malen"

  Alt 31. Jul 2006, 16:44
@3of8
Also an dem repaint kann es nicht liegen, weil ich es auch an anderen Stellen mache (ohne repaint)

Zitat von himitsu:
Welchen Wert (Ordinal) hat'n das €?
Also laut "Showmessage(IntToStr(ord('€')));" ist es 128.

Zitat von himitsu:
[add]
schau mal in der Zeichentabelle (Programm Charmap) nach und verwende direkt diese Code
Wass soll ich da herausfinden? Und wie kann ich Unicodezeichen in einen String schreiben?


[edit]Also ein Chr(128) anstelle des € hats nicht getan
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#7

Re: [Image.Canvas.TextOut] €-Zeichen "malen&a

  Alt 31. Jul 2006, 16:50
Zitat von xZise:
Wass soll ich da herausfinden? Und wie kann ich Unicodezeichen in einen String schreiben?


[edit]Also ein Chr(128) anstelle des € hats nicht getan
icht was es in deinem Ansi (im QuellText für einen Code hat, sonden den Code aus dem Zeichensatz

z.B. ein Edit mit der Schriftart und dem Zeichen und dann.
Edit1.Text := IntToStr(Ord(Edit1.Text[1])); oder mal mit
Edit1.Text := ''; überprüfen.

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);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: [Image.Canvas.TextOut] €-Zeichen "malen"

  Alt 31. Jul 2006, 16:51
Das kann mit Repaint eigentlich gar nicht gehen, da dann das Bild komplett überzeichnet wird.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#9

Re: [Image.Canvas.TextOut] €-Zeichen "malen&q

  Alt 31. Jul 2006, 16:53
Zitat von 3_of_8:
Das kann mit Repaint eigentlich gar nicht gehen, da dann das Bild komplett überzeichnet wird.
nur bei 'ner PaintBox, oder ählichem ... aber wenn die Zahl und das Bild dahinter sichtbar sind, dann stimmt halt was mit dem € nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: [Image.Canvas.TextOut] €-Zeichen "malen"

  Alt 31. Jul 2006, 16:54
Ziemlichsicher (ein a zeichnet er )

Ich werds mal mit dem Edit prüfen ^^

Zitat von 3_of_8:
Das kann mit Repaint eigentlich gar nicht gehen, da dann das Bild komplett überzeichnet wird.
? Und was ist, wenn der gleiche Code ein paar Zeilen tiefer ist (andere Prozedur) und da kein repaint ist?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 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