Text ausgeben ohne TLabel
-
Ich möchte gerne in einer normalen BCB Form einen Text mit bestimmter Farbe, Größe usw. ausgeben, aber ohne TLabel zu benutzen. Mit was geht das am besten?
-
Dann schau dir mal die Eigenschaft Canvas von TForm an. Aber was hast du gegen ein Label?
-
Hmm.. ja das sieht schon ganz nett aus. Kann ich da auch einen anderen Font benutzen?
Aber was hast du gegen ein Label?
Ich bastel gerade an einer eigenen Kompo, die von TImage abgeleitet ist. Wenn ich da ein neues TLabel zb.im Konstruktor erstelle, kommt eine EClassNotFound Exeption! Also probier ich's jetzt anders. Neue Komponenten kann man ja offensichtlich nicht von mehreren VCL Komponenten ableiten.
-
Ja kannst du. Hast du dir Canvas mal in der Hilfe angeschaut? Das hat auch die Eigenschaft Font. Und da die gewuenschten Sachen einfach einstellen.
MfG Aoeke
-
Die Hilfe *hüstel* ämm... flüchtig!
Wie kann ich einen Font zur Laufzeit laden? Muss ich da(In der Hilfe geguckt!) HFONT Handle von TFont ändern?
-
Wieso willst du ein neues Font? Du hast doch schon eines. Ändere einfach die Members von Canvas->Font (z.B. TFont::Name), und dein Font wird sich verändern.
-
Jaja das funktioniert ja alles ganz wunderbar, aber eben nur solange meine Schrift in WINDOWS\Fonts ist. Da ist sie als Standart aber nicht und reinkopieren möchte ich sie da auch nicht. Kann man nicht ein *.ttf Font irgendwie zur Laufzeit oder am besten zur Compilerzeit reinladen?
-
AddFontResource("arial.ttf"); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
-
Super, thx es funtzt!(Welch Überraschung..
)
-
Hab noch zwei Probs: Wie ändere ich die Hintergrundfarbe auf Transarent und wie kriege ich das ganze fett? Hab das schon mit
TFontStyles *MyStyle = fsBold; Application->MainForm->Canvas->Font->Style = MyStyle;
pobiert, aber da krieg ich nur 'n Compiler Fehler!
-
Um die Hintergrundfarbe transparent zu machen musst du glaube ich die WinApi Funktion DrawText() in Verbindung mit SetBkMode() verwenden.
MfG Aoeke
-
Hmm... ja mit WinAPI! Aber ich war jetzt gerade dabei das mit
Application->MainForm->Canvas
zu machen. Das muss auch so gehen! Canvas hat ja sogar ein TFont Objekt mit einer Eigenschaft Style, aber ich krieg's irgendwie nicht gebacken den Wert zu ändern!
-
Hi,
was für Typ hat Style? Ja richtig SET! Und was steht dazu in der FAQ?MfG
Alexander Sulfrian
-
Hmmm... ich weiß nich so ganz was du meinst. Style ist ein TFontStyle. Aber das habe ich ja (siehe oben) schon probiert.
-
Hi,
also bei mir steht das hier:enum TFontStyle { fsBold, fsItalic, fsUnderline, fsStrikeOut };
typedef Set<TFontStyle, fsBold, fsStrikeOut> TFontStyles;
__property TFontStyles Style = {read=GetStyle, write=SetStyle, nodefault};So wie ich das sehe, ist das Style ein Set vom Typ TFontSytle, oder iwe siehst du das???
MfG
Alexander Sulfrian
-
Canvas->Brush->Style = bsClear; Canvas->TextOut(0, 0, "Hallo nirsaja");
-
Das geht(THX!!!), aber warum funktioniert dazu nich analog auch
Canvas->Font->Style = fsBold;
???
-
Alexander Sulfrian schrieb:
So wie ich das sehe, ist das Style ein Set vom Typ TFontSytle, oder iwe siehst du das???
Alexander Sulfrian hat dir eigentlich schon den richtigen hinweis gegeben.
-
Da du nicht darauf zu kommen scheinst! Mal das Beispiel aus der Hilfe des BCB:
Label1->Font->Style = TFontStyles()<< fsBold;
Das muesstest du jetzt nur noch auf das Canvas uebertragen. Fertig..
MfG Aoeke
-
nun wollte ich mal meinen beitrag dazu leisten die leute nur in die richtige richtung zu schupsen und nicht gleich die lösung zu verraten und dann passierts doch
naja, vielleicht beim nächsten mal