I came up with this using trichmemo:
procedure TForm1.Button1Click(Sender: TObject);
var
fp:TFontParams;
current_user:string;
begin
current_user:='Joe User';
send_memo.Lines.BeginUpdate;
try
//get the send text
send_memo.SelectAll;
send_memo.CutToClipboard;
//insert time to receive_memo;
receive_memo.selText:=FormatDateTime('(hh:mm:ss AM/PM) ',now);
//set time color
fp.Color:=clnavy;
fp.Style:=[];
receive_memo.SetTextAttributes(receive_memo.SelStart,receive_memo.SelLength,fp);
receive_memo.SelStart:=receive_memo.GetTextLen;
//Add username
fp.Style:=[fsbold];
receive_memo.SelText:=format('%s ',[current_user]);
receive_memo.SetTextAttributes(receive_memo.SelStart,receive_memo.SelLength,fp);
receive_memo.SelStart:=receive_memo.GetTextLen;
//add the send text to receive memo
receive_memo.PasteFromClipboard;
receive_memo.Lines.Append('');
receive_memo.Lines.Delete(receive_memo.Lines.Count-1);
fp.Style:=[];
fp.Color:=clDefault;
finally
send_memo.Lines.endUpdate;
end;
end;