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
[Erledigt] Verschiedenfarbige Ausgabe
-
- Beiträge: 230
- Registriert: Di 17. Mär 2009, 10:51
- OS, Lazarus, FPC: Win10 64Bit // Linux Mint 20.0 - (L 2.2.0 FPC 3.2.2)
[Erledigt] Verschiedenfarbige Ausgabe
Zuletzt geändert von catweasel am Mi 27. Sep 2017, 20:25, insgesamt 1-mal geändert.
-
- Beiträge: 6167
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Verschiedenfarbige Ausgabe
Das ist die einzige Art die ich kenne.
Ansonsten wäre ein Richmemo eine Variante.
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 grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 230
- Registriert: Di 17. Mär 2009, 10:51
- OS, Lazarus, FPC: Win10 64Bit // Linux Mint 20.0 - (L 2.2.0 FPC 3.2.2)
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
- gladio
- Beiträge: 217
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: [Erledigt] Verschiedenfarbige Ausgabe
Man kann das auch mit Labeln machen.
Deine Teilstrings z.B. den Captions von zwei Labeln zuweisen und dann 'zusammenkleben':
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;
-
- Beiträge: 6167
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
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 grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot