Hi! Ich bin neu hier, hab mich been angemeldet. Ich war schon öfter mal hier und hab bisher immer eine Lösung gefunden, gute Arbeit. Aber diesmal krieg ich es nicht gebacken:
Ich habe ein kleines Chatprogramm programmiert. Der Chatverlauf wird in einem Richedit angezeigt, funktioniert alles ohne Probleme. Nun möchte ich allerdings, dass der Zeilenanfang(bzw. der Benutzername + Datum & Zeit) eingefärbt wird. Ich hab schon sehr viel ausprobiert.
Hier mal der Ausschnitt um den es sich handelt:
Zitat:
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var rec : record_send;
begin
socket.ReceiveBuf(rec, sizeof(rec));
with rec do begin
if net_command = 01 then begin
richedit1.Lines.add(rec_username + '[' + datetostr(date) + '|' + timetostr(time) + ']: ' + rec_text);
RichEdit1.SelStart := pos(rec_username, richedit1.Lines[richedit1.Lines.count - 1]); //was muss hier stehen??
//RichEdit1.SelLength := length(rec_username + '[' + datetostr(date) + '|' + timetostr(time) + ']: ');
with RichEdit1.SelAttributes do begin
Color := clnavy;
style := [fsbold];
Size := 8;
end;
end;
{with RichEdit1 do begin
SelStart := Length(Text);
Perform(EM_SCROLLCARET, 0, 0);
end;}
end;
end;
Ich möchte immer den Zeilenanfang, bzw. immer den Benutzernamen (+Datum,Zeit) der neu angefügten Line, färben.
Er färbt immer irgendetwas ein, aber nicht das, was eingefärbt werden soll. Ich habe es schon geschafft, den besagten String zu färben, zumindest in der ersten Zeile. Ab der zweiten Zeile wurde dann nichts mehr formatiert.
Ich hoffe ich habe das Problem detalliert genug dargestellt und ihr könnt euch zusammenreimen was das Problem.
danke schonmal im Voraus!