Hi,
ich habe beide proceduren probiert, habe jedoch bei dieser das Problem, dass sie endlos läuft.
Ich bekomme nicht heraus warum.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| RichEdit.SelStart := 0; RichEdit.SelLength := 1; while (caBold in RichEdit.SelAttributes.ConsistentAttributes) and (caColor in RichEdit.SelAttributes.ConsistentAttributes) and (caSize in RichEdit.SelAttributes.ConsistentAttributes) and (RichEdit.SelLength < Length(RichEdit.Text)-1) do begin RichEdit.SelLength := RichEdit.SelLength +1; end; RichEdit.SelLength := RichEdit.SelLength -1; showmessage('Alle Zeichen von: '+RichEdit.SelText+#13#10 +'sind in Fettschrift'+#13#10 +'Schriftfarbe: '+ColorToString(RichEdit.SelAttributes.Color)+#13#10 +'Schriftgröße: '+IntToStr(RichEdit.SelAttributes.Size)); |
Scheinbar findet er hier
Delphi-Quelltext
1:
| (RichEdit.SelLength < Length(RichEdit.Text)-1) |
das Ende nicht.
Die andere procedure, als deine erste, funktioniert einwandfrei, berücksichtigt jedoch keinen Zeilenumbruch.
Da werde ich noch ein wenig testen.
Ich würde jedoch gerne erst sehen, was die zweite, die mit der Endlosschleife, für Ergebnisse auswirft.
---
Moderiert von
Narses: Beiträge zusammengefasst---
Hat sich erledigt. Endlosschleife wars wohl keine, nachdem ich zu Testzwecken ein Showmessage dazu gebaut habe
gehts auf ein mal. war wohl ein Fehler von mir drin.
Nun gut, ich teste weiter, denn die procedure tut nicht das was ich dachte.
Beispielsweise sagt sie, wenn nur ein unformatierter Text, z.B. 'Hallo' drin steht, dass 'Hallo' komplett in Fetschrift geschrieben wäre.
Wie gesagt, ich teste noch herum um die Funktionsweise zu begreifen und ggf. eine Idee zu bekommen, wie ich sie für die Lösung meines Problems einsetzen könnte.