AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben
Thema durchsuchen
Ansicht
Themen-Optionen

Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

Ein Thema von Hallo_Thomas · begonnen am 4. Dez 2006 · letzter Beitrag vom 5. Dez 2006
Antwort Antwort
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 4. Dez 2006, 14:29
Hallo,

Gibt es Komponente mit der ich Buchstaben mehrfarbig machen kann?Bzw. geht das mit canvas?

mfg Thomas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 4. Dez 2006, 14:30
Am Einfachsten nimmst du ein HTML oder RTF-fähiges Label.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 4. Dez 2006, 14:37
Ich empfehle mal aus dem Windows-SDK:

MSDN-Library durchsuchenBitBlt, MSDN-Library durchsuchenMaskBlt und MSDN-Library durchsuchenTextOut

Erst mit normaler Schriftausgabe die Maske für die 'bunte Schrift' bauen
Auf ein weiteres Unsichtbares Bitmap die Farben drauflegen
und dann nur laut Maske von dem bunten Zeugs auf das AnzeigeCanvas kopieren

Viel Spass!

Edit: Hrm... irgendwie hab ich den ersten Post falsch gelesen... egal, vielleicht trotzdem brauchbar

Edit2: Nein, doch nich... in der Überschrift war von einzelnen Buchstaben die Rede
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 4. Dez 2006, 15:25
Jo, genau das ist das Problem, einzelne Buchstaben bekomme ich da nicht wirklch hin.

Dass einzige was ich bis jetzt gefunden habe, war das JVWinAmpLabel, doch irgenwie ist das auch nicht so das wahre.
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 4. Dez 2006, 19:30
Dann versuch mal über eine Maske (gebastelt mit TextOut), eine Farbsource(die so gross ist, wie die Maske) und anschliessend das ganze via MaskBlt auf das Zielcanvas zu übertragen. Evtl. musst du noch den Platzbedarf berechnen um Maske und Farbsource zu kalkulieren.

PS: Wenn du dann viel Langeweile hast, kannst du's ja in eine eigene Label-Komponente kapseln

EDIT: mal ganz grob:

Delphi-Quellcode:
procedure cnvDrawColoredText(Text: string; Canvas: TCanvas; X,Y: Integer);
var
  Mask, cSrc: TBitmap;
  Size: TSize;
  i: Integer;
begin
  // Groesse berechnen
  Size := Canvas.TextExtent(Text);
  
  // Buffer vorbereiten
  Mask := TBitmap.Create; Mask.Width := Size.cx; Mask.Height := Size.cy;
  cSrc := TBitMap.Create; cSrc.Width := Size.cx; cSrc.Height := Size.cy;

{  :
  :
  // cSrc wie gewünscht colorieren
  :
   :                                   }


  // Maske schwarz faerben
  Mask.Canvas.Pen.Color := clBlack;
  Mask.Canvas.Brush.Color := clBlack;
  Mask.Canvas.Rectangle(0,0,Size.cx,Size.cy);

  // Text in Weiss schreiben
  Mask.Canvas.Font.Color := clWhite;
  Mask.Canvas.TextOut(0,0,Text);

  // Maske Schwarz/Weiss machen
  Mask.Monochrome := True;
  Mask.PixelFormat := pf1bit;

  // Kopieren
  // Wichtig! MUSS 2 mal durchlaufen
  for i:= 0 to 1 do MaskBlt(
    Canvas.Handle, X, Y,
    Size.cx, Size.cy,
    cSrc.Canvas.Handle, 0, 0,
    Mask.Handle, 0, 0,
    MakeROP4(SRCCOPY,DSTINVERT)
  );

  Mask.Free;
  cSrc.Free;
end;
Hab nochmal drübergeschaut... Müsste jetzt funzen
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#6

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 5. Dez 2006, 04:56
Zitat von cruiser:
Dann versuch mal über eine Maske (gebastelt mit TextOut), eine Farbsource(die so gross ist, wie die Maske) und anschliessend das ganze via MaskBlt auf das Zielcanvas zu übertragen. Evtl. musst du noch den Platzbedarf berechnen um Maske und Farbsource zu kalkulieren.

PS: Wenn du dann viel Langeweile hast, kannst du's ja in eine eigene Label-Komponente kapseln :mrgreen:

EDIT: mal ganz grob:
...
Hab nochmal drübergeschaut... Müsste jetzt funzen :stupid:
Hallo,

wo ist überhaupt das Problem, für das man eine so komplizierte Lösung braucht? man kann doch unbestritten einen roten Text schreiben, dahinter einen blauen usw. - im Extremfall ist eben jeder farbige Text nur einen Buchstaben lang.

Ist natürlich was anderes, wenn man nach der Anzahl der Zeilen bezahlt wird, dann macht so etwas Sinn.

Gruss Reinhard
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 5. Dez 2006, 05:48
http://www.delphipraxis.net/internal...=566682#566682
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 5. Dez 2006, 11:01
Zitat von Reinhard Kern:
...wo ist überhaupt das Problem, für das man eine so komplizierte Lösung braucht? man kann doch unbestritten einen roten Text schreiben, dahinter einen blauen usw. ...
Er hat nie gesagt WIE das mit dem "farbig" gemeint ist... hat er einen Senkrechten Farbverlauf z.B. reicht es eben nicht. Da ich mich zudem grade selbst damit auseinandergesetzt hab, hatte ich halt eine universelle, wenn auch kompliziertere Methode (nein, kein Text bei mir aber etwas ähnlich gelagertes)
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#9

Re: Schrift Fonts mehr-Farbig? -Auch einzelne Buschstaben

  Alt 5. Dez 2006, 11:56
Zitat von cruiser:
Zitat von Reinhard Kern:
...wo ist überhaupt das Problem, für das man eine so komplizierte Lösung braucht? man kann doch unbestritten einen roten Text schreiben, dahinter einen blauen usw. ...
Er hat nie gesagt WIE das mit dem "farbig" gemeint ist... hat er einen Senkrechten Farbverlauf z.B. reicht es eben nicht. Da ich mich zudem grade selbst damit auseinandergesetzt hab, hatte ich halt eine universelle, wenn auch kompliziertere Methode (nein, kein Text bei mir aber etwas ähnlich gelagertes)
Ja, das ursprüngliche Posting ist recht missverständlich - unter "mehrfarbigen Buchstaben" kann man sich viel vorstellen.

Gruss Reinhard
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:17 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