[gelöst] Wie einzelne Buchstaben einer Memo einfärben?
-
- Beiträge: 61
- Registriert: So 21. Aug 2011, 20:37
- OS, Lazarus, FPC: WIN7 /Laz 1,0,8 / FPC 2.6.2/ SVN 40573
- CPU-Target: xxBit
[gelöst] Wie einzelne Buchstaben einer Memo einfärben?
Hallo!
Ich schreibe ein Vokabelprogramm.
Es wird die Memo2.Lines.Strings[0]; mit der Memo3.Lines.Strings[0] verglichen.
Das klappt auch alles.
Jetzt möchte ich die gegebene Antwort (in Memo2.Lines.Strings[0]) Buchstabenweise mit Memo3.Lines.Strings[0] (hinterlegte Antwort) vergleichen.
(Das werde ich auch hinkriegen.)
Das möchte ich machen, um in der gegebenen Antwort die richtigen Buchstaben schwarz zu lassen, und die falschen Buchstaben rot zu schreiben.
---------------
Text des Memos kann ich mittels
Memo2.Font.Color:= clRed;
einfärben.
Meine Frage ist jetzt, wie ich einzelne Buchstaben in einer Memo2.Lines.Strings[0] einfärbe.
Ich hoffe ich konnte das verständlich darstellen.
Vielen Dank!
Gruß!
idefix
Ich schreibe ein Vokabelprogramm.
Es wird die Memo2.Lines.Strings[0]; mit der Memo3.Lines.Strings[0] verglichen.
Das klappt auch alles.
Jetzt möchte ich die gegebene Antwort (in Memo2.Lines.Strings[0]) Buchstabenweise mit Memo3.Lines.Strings[0] (hinterlegte Antwort) vergleichen.
(Das werde ich auch hinkriegen.)
Das möchte ich machen, um in der gegebenen Antwort die richtigen Buchstaben schwarz zu lassen, und die falschen Buchstaben rot zu schreiben.
---------------
Text des Memos kann ich mittels
Memo2.Font.Color:= clRed;
einfärben.
Meine Frage ist jetzt, wie ich einzelne Buchstaben in einer Memo2.Lines.Strings[0] einfärbe.
Ich hoffe ich konnte das verständlich darstellen.
Vielen Dank!
Gruß!
idefix
Zuletzt geändert von idefix am Fr 20. Jul 2012, 22:23, insgesamt 5-mal geändert.
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Wie einzelne Buchstaben einer Memo2.Lines.Strings einfärben?
in der Standart-Memo geht dies sicherlich nicht.
Mit SynEdit wird das wahrscheinlich machbar sein (SynEdit ist die "Memo", welche Lazarus benutzt, dort sind ja auch verschiedene Farben möglich, wie z.B. Blaue Komentare...)
Du könntest aber auch mit einem kleinen Trick arbeiten, indem du das ganze nicht in der Memo, sondern in einem Label (bzw 3 Labeln) anzeigst:
Beispiel: das Wort "Hehllo" ist falsch geschrieben.
Dann schreibst du in das erste Label "He", in das zweite den Fehler "h" und in das dritte Label "llo".
Wenn du jetzt das erste und dritte Label schwarz machst und das zweite rot und die "Anchors" benutzt erhälst du ein ähnliches Ergebnis mit einem relativ geringen Auffand...
Mit SynEdit wird das wahrscheinlich machbar sein (SynEdit ist die "Memo", welche Lazarus benutzt, dort sind ja auch verschiedene Farben möglich, wie z.B. Blaue Komentare...)
Du könntest aber auch mit einem kleinen Trick arbeiten, indem du das ganze nicht in der Memo, sondern in einem Label (bzw 3 Labeln) anzeigst:
Beispiel: das Wort "Hehllo" ist falsch geschrieben.
Dann schreibst du in das erste Label "He", in das zweite den Fehler "h" und in das dritte Label "llo".
Wenn du jetzt das erste und dritte Label schwarz machst und das zweite rot und die "Anchors" benutzt erhälst du ein ähnliches Ergebnis mit einem relativ geringen Auffand...
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: Wie einzelne Buchstaben einer Memo2.Lines.Strings einfärben?
TMemo kann nur eine Farbe darstellen.
Dasselbe gilt fuer TLabel (Antwort von MAC). Mehrere Label aneinander zu haengen ist aufwendig....
Es gibt 2 andere Text Kompononten:
1) TRichMemo. Verhaelt sich wie ein Memo, aber kann Farben. Google...
2) TSynEdit (TSynMemo ist eine Kopie von SynEdit)
Unterschied: Kein automatischer Zeilenumbruch. Nur Monospaced fonts.
Kann ebenfalls Farben. Im example folder ist ein Beispiel fuer den TSynPosSyn (Poitions Highlighter)
BTW TSynEdit kann eine rote zickzack Unterstreichung.
Dasselbe gilt fuer TLabel (Antwort von MAC). Mehrere Label aneinander zu haengen ist aufwendig....
Es gibt 2 andere Text Kompononten:
1) TRichMemo. Verhaelt sich wie ein Memo, aber kann Farben. Google...
2) TSynEdit (TSynMemo ist eine Kopie von SynEdit)
Unterschied: Kein automatischer Zeilenumbruch. Nur Monospaced fonts.
Kann ebenfalls Farben. Im example folder ist ein Beispiel fuer den TSynPosSyn (Poitions Highlighter)
BTW TSynEdit kann eine rote zickzack Unterstreichung.
-
- Beiträge: 61
- Registriert: So 21. Aug 2011, 20:37
- OS, Lazarus, FPC: WIN7 /Laz 1,0,8 / FPC 2.6.2/ SVN 40573
- CPU-Target: xxBit
Re: Wie einzelne Buchstaben einer Memo2.Lines.Strings einfärben?
Hallo!
Ich bin gerade am schreiben, das die gefundenen Beispiele unter
http://www.lazarusforum.de/viewtopic.php?f=18&t=5955
nicht funktionieren.
Ich habe sowohl lzRichEdit als auch RichMemo installiert. Und TSynEdit gefunden.
Da spiele ich doch noch mit dem Code rum.
Es geht doch.
Und zwar das Beispiel von corpsman (zum Schluss clblack in clred ändern).
Nun habe ich noch einiges zum austesten.
------------------
Ich habe bisher nichts gefunden, wo Farbe funktioniert.
Über einen Link wäre ich dankbar.
Ich sehe gerade SynMemo und SynEdit sind im Uses eingebunden.
Wenn das also in diesen Units ist, wo finde ich die?
Vielen Dank!
Gruß!
idefix
Ich bin gerade am schreiben, das die gefundenen Beispiele unter
http://www.lazarusforum.de/viewtopic.php?f=18&t=5955
nicht funktionieren.
Ich habe sowohl lzRichEdit als auch RichMemo installiert. Und TSynEdit gefunden.
Da spiele ich doch noch mit dem Code rum.
Es geht doch.
Und zwar das Beispiel von corpsman (zum Schluss clblack in clred ändern).
Nun habe ich noch einiges zum austesten.
------------------
Installiert habe ichs.martin_frb hat geschrieben:
1)TRichMemo. Verhaelt sich wie ein Memo, aber kann Farben. Google...
Ich habe bisher nichts gefunden, wo Farbe funktioniert.
Über einen Link wäre ich dankbar.
Im example folder von SynMemo, oder von lazarusforum.de?2) TSynEdit (TSynMemo ist eine Kopie von SynEdit)
Kann ebenfalls Farben. Im example folder ist ein Beispiel fuer den TSynPosSyn (Poitions Highlighter)
Ich sehe gerade SynMemo und SynEdit sind im Uses eingebunden.
Wenn das also in diesen Units ist, wo finde ich die?
Vielen Dank!
Gruß!
idefix
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: Wie einzelne Buchstaben einer Memo2.Lines.Strings einfärben?
Im Installations Verzeichniss von Lazarus ist ein Ordner examples/synedit/
-
- Beiträge: 61
- Registriert: So 21. Aug 2011, 20:37
- OS, Lazarus, FPC: WIN7 /Laz 1,0,8 / FPC 2.6.2/ SVN 40573
- CPU-Target: xxBit
Re: Wie einzelne Buchstaben einer Memo2.Lines.Strings einfärben?
Hallo!
Das Beispiel funktioniert.
Bleibt das Problem mit dem nicht vorhandenen Zeilenumbruch.
Gibt es da eine Lösungsmöglichkeit?
Danke!
Gruß!
idefix
Das Beispiel funktioniert.
Bleibt das Problem mit dem nicht vorhandenen Zeilenumbruch.
Gibt es da eine Lösungsmöglichkeit?
Danke!
Gruß!
idefix
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: Wie einzelne Buchstaben einer Memo2.Lines.Strings einfärben?
Leider nicht. (Nicht in naher Zeit...) SynEdit kann kein wordwrap.
Du kannst selbst auf onResize reagieren und CharsInWindow property nutzen. Wird aber aufwendig, weil auch das caret umgesetzt werden muss....
Vielleicht kann ja jemand anderes beim RichMemo helfen...
Du kannst selbst auf onResize reagieren und CharsInWindow property nutzen. Wird aber aufwendig, weil auch das caret umgesetzt werden muss....
Vielleicht kann ja jemand anderes beim RichMemo helfen...
-
- Beiträge: 61
- Registriert: So 21. Aug 2011, 20:37
- OS, Lazarus, FPC: WIN7 /Laz 1,0,8 / FPC 2.6.2/ SVN 40573
- CPU-Target: xxBit
Re: Wie einzelne Buchstaben einer Memo2.Lines.Strings einfärben?
Hallo!
Alles andere ist Fleißarbeit.
Danke!
Gruß!
idefix
Ich werde jetzt mit lzRichEdit1 weitermachen. Ich habe ein Beispiel, wo in einer Zeile zwei Farben vorkommen.martin_frb hat geschrieben:Leider nicht. (Nicht in naher Zeit...) SynEdit kann kein wordwrap.
Du kannst selbst auf onResize reagieren und CharsInWindow property nutzen. Wird aber aufwendig, weil auch das caret umgesetzt werden muss....
Vielleicht kann ja jemand anderes beim RichMemo helfen...
Alles andere ist Fleißarbeit.
Danke!
Gruß!
idefix
-
- Beiträge: 61
- Registriert: So 21. Aug 2011, 20:37
- OS, Lazarus, FPC: WIN7 /Laz 1,0,8 / FPC 2.6.2/ SVN 40573
- CPU-Target: xxBit
Re: [gelöst] Wie einzelne Buchstaben einer Memo einfärben?
Hallo!
Ich habe doch noch eine Frage.
Wie kann ich zur Laufzeit Buchstaben eines lzRichEdit unterstreichen.
Und zwar nur einzelne Buchstaben, nicht das ganze Wort.
Mir fehlt konkret die Korrektur für diesen Befehl, die der Compiler nicht akzeptiert.
Bis einschließlich Style klappt der Compiler nach jedem Punkt die Liste auf, aus der man aussuchen kann.
Auch das Weglassen des Punktes bringt nichts.
----------------
PS. Wie ist das in diesem Forum, für jede neue Frage einen extra Thread, oder alle Fragen in einem Thread stellen?
Vielen Dank!
Gruß!
idefix
Ich habe doch noch eine Frage.
Wie kann ich zur Laufzeit Buchstaben eines lzRichEdit unterstreichen.
Und zwar nur einzelne Buchstaben, nicht das ganze Wort.
Mir fehlt konkret die Korrektur für diesen Befehl, die der Compiler nicht akzeptiert.
Code: Alles auswählen
lzRichEdit2.Font.Style.[fsUnderlin] := true;
Auch das Weglassen des Punktes bringt nichts.
----------------
PS. Wie ist das in diesem Forum, für jede neue Frage einen extra Thread, oder alle Fragen in einem Thread stellen?
Vielen Dank!
Gruß!
idefix
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: [neue Frage] Wie einzelne Buchstaben einer Memo einfärben?
Ich kenne LzRichEdit nicht, nur Delphi RichEdit und Lazarus RichMemo. Da ist Font.Style ein Set. Wahrscheinlich geht es so:idefix hat geschrieben:Mir fehlt konkret die Korrektur für diesen Befehl, die der Compiler nicht akzeptiert.Code: Alles auswählen
lzRichEdit2.Font.Style.[fsUnderlin] := true;
Code: Alles auswählen
lzRichEdit2.Font.Style := [fsUnderline];
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: [neue Frage] Wie einzelne Buchstaben einer Memo einfärben?
So viel ich weis stellst du immer neue Fragen, zumindest wenns um gravierende dinge geht, was du da hast ist ja eher was für den Chat, oder Google...PS. Wie ist das in diesem Forum, für jede neue Frage einen extra Thread, oder alle Fragen in einem Thread stellen?
--
Just try it
Just try it
-
- Beiträge: 61
- Registriert: So 21. Aug 2011, 20:37
- OS, Lazarus, FPC: WIN7 /Laz 1,0,8 / FPC 2.6.2/ SVN 40573
- CPU-Target: xxBit
Re: [neue Frage] Wie einzelne Buchstaben einer Memo einfärben?
Hallo!
Ich habe das jetzt gelöst, indem ich einfach ein Unterstrich zum eingegebenen String dazu addiere.
Das andere klappt nicht. Da wird nur die ganze Zeile unterstrichen.
Danke!
Gruß!
idefix
Ich habe das jetzt gelöst, indem ich einfach ein Unterstrich zum eingegebenen String dazu addiere.
Das andere klappt nicht. Da wird nur die ganze Zeile unterstrichen.
Danke!
Gruß!
idefix
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: [gelöst] Wie einzelne Buchstaben einer Memo einfärben?
Was hast Du da genau gemacht?idefix hat geschrieben:Ich habe das jetzt gelöst, indem ich einfach ein Unterstrich zum eingegebenen String dazu addiere.
Auch ich habe eine Anwendung mit TRichMemo gemacht und das Unterstreichen eines einzelnen Zeichens (eine Ziffer zwischen 2 Tabs in einem Kalender) klappt da wunderbar. Ich hab nur bemerkt, dass ich mit Umlauten beim Zählen der Positionen aufpassen muss (UTF8Length verwenden).idefix hat geschrieben:Das andere klappt nicht. Da wird nur die ganze Zeile unterstrichen.
-
- Beiträge: 61
- Registriert: So 21. Aug 2011, 20:37
- OS, Lazarus, FPC: WIN7 /Laz 1,0,8 / FPC 2.6.2/ SVN 40573
- CPU-Target: xxBit
Re: [gelöst] Wie einzelne Buchstaben einer Memo einfärben?
Hallo!
Ich habe mir mittels einer ubuntu Installation den Zugang zu Win 7 zerschossen.
Könnte länger dauern.
Danke!
Gruß!
idefix
Ich kann wohl erstmal nichts dazu schreiben.Heinrich Wolf hat geschrieben:Was hast Du da genau gemacht?idefix hat geschrieben:Ich habe das jetzt gelöst, indem ich einfach ein Unterstrich zum eingegebenen String dazu addiere.Auch ich habe eine Anwendung mit TRichMemo gemacht und das Unterstreichen eines einzelnen Zeichens (eine Ziffer zwischen 2 Tabs in einem Kalender) klappt da wunderbar. Ich hab nur bemerkt, dass ich mit Umlauten beim Zählen der Positionen aufpassen muss (UTF8Length verwenden).idefix hat geschrieben:Das andere klappt nicht. Da wird nur die ganze Zeile unterstrichen.
Ich habe mir mittels einer ubuntu Installation den Zugang zu Win 7 zerschossen.
Könnte länger dauern.
Danke!
Gruß!
idefix
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: [gelöst] Wie einzelne Buchstaben einer Memo einfärben?
Super Grub boot disk , kann ich nur empfehlen...idefix hat geschrieben: Ich kann wohl erstmal nichts dazu schreiben.
Ich habe mir mittels einer ubuntu Installation den Zugang zu Win 7 zerschossen.
Könnte länger dauern.
Danke!
Gruß!
idefix

Code: Alles auswählen
Signatur := nil;