Hallo,
ich habe in einem Chat einen Record in dem Username, Farbe des Users und Sein eingegebener Text steht. All das wird in eine Datei geschrieben. Diese wird dann in ein RichEdit eingelesen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| FOR i := 1 TO DsxDatei.LastInput DO BEGIN EingLang := length( DeCode( DsxDatei.Inputs[ i ].User ) + ' (' + DeCode( DsxDatei.Inputs[ i ].Time ) + '): ' + DeCode( DsxDatei.Inputs[ i ].Comment ) );
RichEdit1.Lines.Add( DeCode( DsxDatei.Inputs[ i ].User ) + ' (' + DeCode( DsxDatei.Inputs[ i ].Time ) + '): ' + DeCode( DsxDatei.Inputs[ i ].Comment ) ); Richedit1.SelStart := Position; Richedit1.SelLength := EingLang; Faerben; Position := Position + EingLang + 2; END; |
Die Procedure Faerben sieht so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| PROCEDURE TForm1.Faerben; BEGIN case DsxDatei.Inputs[ DsxDatei.LastInput ].Farbe of 1: Richedit1.SelAttributes.Color:=clBlack; 2: Richedit1.SelAttributes.Color:=clMaroon; 3: Richedit1.SelAttributes.Color:=clGreen; 4: Richedit1.SelAttributes.Color:=clOlive; 5: Richedit1.SelAttributes.Color:=clNavy; 6: Richedit1.SelAttributes.Color:=clPurple; 7: Richedit1.SelAttributes.Color:=clTeal; 8: Richedit1.SelAttributes.Color:=clSilver; 9: Richedit1.SelAttributes.Color:=clGray; 10: Richedit1.SelAttributes.Color:=clRed; 11: Richedit1.SelAttributes.Color:=clLime; 12: Richedit1.SelAttributes.Color:=clYellow; 13: Richedit1.SelAttributes.Color:=clBlue; 14: Richedit1.SelAttributes.Color:=clFuchsia; 15: Richedit1.SelAttributes.Color:=clAqua; 16: Richedit1.SelAttributes.Color:=clWhite; end; END; |
Aber wenn die For-Schleife zu Ende ist hat der gesamte Inhalt von RichEdit1 die Farbe vom letzten Datensatz, warum ist das so, normalerweise ist doch nur der neue Text Selektiert!
Bitte helft mir,
Grüße Andi