Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Canvas und TLabel. (https://www.delphipraxis.net/126114-canvas-und-tlabel.html)

thiagojonas 18. Dez 2008 11:46


Canvas und TLabel.
 
Hallo Jungs, also ich habe eine TLabel.
Sie erhält folgenden Wert:
Delphi-Quellcode:
label1.Caption := ' hallo' + #13#10 + 'tschüss';
Ich würde jetzt aber gerne, dass z.B. "hallo" fettgedruckt gezeigt wird und "tschüss" normal.
Und entsprechen auch für das Drucken.
Die Zeilenumbrüche erkennt ja Canvas so nicht an, also drucke ich es wie folgt aus.
Mit Erfolg.

Delphi-Quellcode:
 tmp_row := Label1.Caption ;
if (Pos(#13#10,tmp_row) > 0) then
begin
  repeat
     position := Pos(#13#10,tmp_row);
if (position > 0) then
     part := Copy(tmp_row,1,position-1)
else
     part := tmp_row ;
     Printer.Canvas.TextOut(x,y,part);
     Delete(tmp_row,1,position+1);
     y := y + font_heigth ;
  until
     position <= 0;
  end
else
begin
     Printer.Canvas.TextOut(x,y,tmp_row);
  end;
Wie kann ich da auch einzelne Wörter oder Sätze formatieren?
Danke im voraus :-D

flipdascript 18. Dez 2008 13:01

Re: Canvas und TLabel.
 
Du kannst ja den Font des Canvas vor jeder Textausgabe anpassen.

Zum Beispiel: (Text wird dann Fett gedruckt und unterstrichen ausgegeben)
Code:
  ...
  Printer.Canvas.Font.Style := [fsUnderline, fsBold];
  Printer.Canvas.TextOut(TextPartPosX, TextPartPosY, TextPart);
  ...
Dein Ansatz ist aber leider generell nicht sehr flexibel. Im Prinzip müßtest Du die Steuerinformationen, wie die einzelnen Textpassagen auszugeben sind, in den Text mit reincodieren. Falls Du das aber immer genau so ausgeben willst kannst du das sicherlich auch so machen.

hlohning 22. Dez 2008 20:00

Re: Canvas und TLabel.
 
Falls Du bloß eine einzeilige Anzeige suchst, hier gibt es eine Label-Komponente, die HTML versteht (ist aber Teil eines größeren Packages):
Component HTMLLab
(oberster eintrag "htmllabel"

Grüße,

Hans


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 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