Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Canvas.TextOut -- 2 fragen
Tanrek - Di 19.07.05 09:20
Titel: Canvas.TextOut -- 2 fragen
so, ich hätt da mal 2 kleine probleme
1:
ich möchte in ein image etwas reinschreiben... das geht ja mit Image1.Canvas.TextOut
ich habe jedoch mehrere images, wo gleichzeitig was reingeschrieben werden soll und auch noch der text vorher aus einer .ini datei gelesen wird.
hier mal der quelltext:
Delphi-Quelltext
1: 2: 3: 4:
| Image1.Canvas.TextOut(0,0,ReadString('Names',Switch + '1', 'FEHLER')); Image2.Canvas.TextOut(0,0,ReadString('Names',Switch + '2', 'FEHLER')); Image3.Canvas.TextOut(0,0,ReadString('Names',Switch + '3', 'FEHLER')); |
das schlimme dabei ist, dass man im programm dann wunderbar sieht, wie die images einzeln beschrieben werden... gibt es da vielleicht eine scnellere möglichkeit?
2:
bei manchen images ist der hintergrund schwarz... wie kann ich meine Farbe vom canvas.textout ändern, so das man die schrift lesen kann
mfg
maxk - Di 19.07.05 11:44
1) Erstmal alles auf ein Canvas packen und dann das Bild as is auf das Form packen. Das wird dir jedoch deine bisherige Planung zerstören ;) Ansonsten sollte es aber auch so wie du es jetzt machst nicht allzu lange dauern. Wie viele Images hast du denn?
2) TextOut arbeitet meines Wissens immer mit einem Hintergrund. Ich würde den Text vorher auf ein anderes Canvas packen (z.B. temporäres Bitmap) und dieses dann auf das Bild raufkopieren. Mittels CopyMode kannst du dabei regeln, wie der Hintergrund übernommen wird.
Gruß,
maxk
Tanrek - Di 19.07.05 11:52
zu 1:
ich habe 8 Images... und das sollte halt so schnell wie möglich beschrieben werden... jetzt braucht er so ungefähr ne halbe sec... was aber noch zu lang dauert :( ich meine... theoretisch isses nicht wichtig, aber es sieht halt net so toll aus, wenn man die schrift erscheinen sieht :wink:
zu 2:
öhm... um ehrlich zu sein versteh ich das net :oops: könntest du mir das vielleicht an einem beispiel erklären???
mfg
maxk - Di 19.07.05 12:00
2. mal ganz auf die Schnelle:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| const Text='Hello world'; begin with TBitmap.Create do try Canvas.Font.Assign(Image1.Canvas.Font); Width:=Canvas.TextWidth(Text); Height:=Canvas.TextHeight(Text);
Canvas.Brush.Color:=clBlack; Canvas.Font.Color:=clWhite; Canvas.TextOut(0,0,'Hello world');
Image1.Canvas.CopyMode:=SrcPaint; Image1.Canvas.CopyRect(Rect(100,100,100+Width,100+Height),Canvas,Rect(0,0,Width,Height)); finally Free; end; |
Gruß,
maxk
Tanrek - Di 19.07.05 12:09
jo, danke :D
jetzt weiß ich endlich, was ich klicke 8)
mfg tanrek
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!