Hard Word Wrapping in TMEMO

I'm having trouble finding a method to put Hard CR's into a TMEMO component
at a specified margin.

Wrapping isn't really the problem, nor is putting the hard CR in there.  But
the methods that I've used, adding #13,#10 to the end of the line, or
sending direct key presses have odd effects when wrapping words.

If for example, I wrap at 80, and starting with letter 75 the word Alexander
would need to be wrapped he whole line.  If I perform the length check at a
space (indicating the end of the word) I have to back the caret up to the
space before the A, send an enter, then move to the next line, and finally
move over the proper number of characters to reach the end of Alexander and
let the person continue typing.  This doesn't work well since there doesn't
appear to be a method to send the Caret to the next line other than a
Keypress.  And if I send Keypresses, well TMemo seem's to ignore anything I
tell it to because it seem's to "remember" where it was before I set it
somewhere else, and goes back there immediately anyway.

I've even tried making a Memo with 4 lines in it, and making a button with
the following code:

 if not SetCaretPos(3,3) then Label1.Caption := 'Error';

The label doesn't show the Error, the cursor goes kinda half way through the
first character of the first line in the Memo, start typing and whala it
goes right back to where the caret was before you moved the caret.  This and
a variety of other errors are coming up all over the place.  And I've tried
using SelStart, which works, but the Memo takes over the entire operation
and places the 'space' it was wrapped at at the end of the last line.  Much
like the above SetCaretPos line will go half way through the first letter,
but when you start typing the caret moves to it's last location.

At any rate, can anyone suggest a method of placing a Hard CR at a specified
location in a TMemo, and then wrapping the leftover text to the next line
which will work even if there is already text at that next line or no  line
at all?