Just to help future searchers...
I found
TMemo.ScrollBy() and tried that, and, no, didn't work either. The TMemo just refuses to be told how to scroll, I guess. While doing further research, I stumbled on clarification of what TRon suggested. TRon suggested using
Append, then changing the last line in the TMemo. It didn't work when I tried it, but then found that you have to access that last line using
TMemo.Lines.Strings[index]. That worked!

So, in shorthand code...
Memo1.Append('Deleting file...');
// do processing here
If ProcessFailed = False Then
Memo1.Lines.Strings[Memo1.Lines.Count - 1] := Memo1.Lines.Strings[Memo1.Lines.Count - 1] + 'Ok'
Else
Memo1.Lines.Strings[Memo1.Lines.Count - 1] := Memo1.Lines.Strings[Memo1.Lines.Count - 1] + 'failed';
So, not the prettiest solution, but TRon had the right idea, and
Append does scroll the TMemo properly. I made the last line modification code into a separate procedure so I didn't have to type all of that out repeatedly everywhere its needed.
Thanks everyone!
