[Erledigt] Verschiedenfarbige Ausgabe

Rund um die LCL und andere Komponenten

[Erledigt] Verschiedenfarbige Ausgabe

Beitragvon catweasel » 27. Sep 2017, 14:20 [Erledigt] Verschiedenfarbige Ausgabe

Hallo

Ich schreibe ein kleines Programm das u.a. ein RegEx testen soll.
Der Regex funktioniert bereits und ich habe auch die Position und Länge des Treffers.

Bei einem Treffer möchte ich das genau der Teil der matched in einer anderen Farbe (oder auch nur in Fettschrift) dargestellt wird

Beispiel
Auf denText: "das_ist_ein_test"
wende ich den RegEx "test$" an (Treffer an Position 13, Länge 4)


dann soll im Ergebnis stehen:
"das_ist _ein_test" oder "das_ist _ein_test"

Label oder Edit kann meines Wissens nur einfarbig gemacht werden. Auch im Memo bin ich nicht fündig geworden.
Wie kann ich eine Ausgabe eines Textes zweifarbig machen?

Gruß
Michael
Zuletzt geändert von catweasel am 27. Sep 2017, 19:25, insgesamt 1-mal geändert.
catweasel
 
Beiträge: 179
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win7 64Bit (L 1.6 FPC 3.0.0) | 
Nach oben

Beitragvon Mathias » 27. Sep 2017, 15:51 Re: Verschiedenfarbige Ausgabe

Das ist die einzige Art die ich kenne.
Code: Alles auswählen
  Canvas.Font.Color := clBlack;
  Canvas.TextOut(10, 10, 'Hello');
  Canvas.Font.Color := clRed;
  Canvas.TextOut(40, 10, 'World');

Ansonsten wäre ein Richmemo eine Variante.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3201
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon catweasel » 27. Sep 2017, 19:27 Re: Verschiedenfarbige Ausgabe

Mathias hat geschrieben:Das ist die einzige Art die ich kenne.
Code: Alles auswählen
  Canvas.Font.Color := clBlack;
  Canvas.TextOut(10, 10, 'Hello');
  Canvas.Font.Color := clRed;
  Canvas.TextOut(40, 10, 'World');

Ansonsten wäre ein Richmemo eine Variante.


Danke für die Info.
Das ist zwar eine ziemliche pulerei aber so hat es funktioniert.

Gruß
Michael
catweasel
 
Beiträge: 179
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win7 64Bit (L 1.6 FPC 3.0.0) | 
Nach oben

Beitragvon gladio » 28. Sep 2017, 09:28 Re: [Erledigt] Verschiedenfarbige Ausgabe

Man kann das auch mit Labeln machen.
Deine Teilstrings z.B. den Captions von zwei Labeln zuweisen und dann 'zusammenkleben':
Code: Alles auswählen
 
  Label1.Caption := String1;
  Label2.Caption := String2;
  Label2.Font.Color := clRed;  //oder Bold
  Label2.Left := Label1.Left+Label1.Width+3; //3 hier einfach als Abstand
  Label2.Top := Label1.Top;
gladio
 
Beiträge: 70
Registriert: 21. Jun 2014, 05:15
Wohnort: Ostseestrand
OS, Lazarus, FPC: Win7/10-32/64 | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon Mathias » 28. Sep 2017, 17:19 Re: [Erledigt] Verschiedenfarbige Ausgabe

Dies ist natürlicher um einiges eleganter. Das eleganteste wäre, eine neue Komponente zu schreiben, welche von TStaticText oder TLabel ableitet.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3201
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried