I dont have a copy of Delphi to hand, but I'm fairly certain if you set the wordwrap property to true and the autosize property to false it should wrap any text you put it at the size you make the label. If you want to line break in a certain place then it might work if you set the above settings and paste from a text editor.

'' // Empty one, no line at all
#13#10 // One empty line
'One' // One non empty line
'One'#13#10 // Two lines, first not empty, last empty
#13#10'One' // Two lines, first empty, last not empty
etc

Assigning that each string to Lines.Text causes things not expected...

In other words:

MyLabel.Caption:='One Line'; // One single line with no line break on it, with just 8 chars
Memo1.Lines.Text:=MyLabel.Caption;
ShowMessage(IntToStr(Length(MyLabel.Caption)+' - '+IntToStr(Length(Memo1.Lines.Text)));

Will show (on Windows): 8 - 10

Note: At least happens on my Turbo Delphi 2006.

That is caused because .Text implementation adds a new line break (two chars on windows) after each line, so allways ends with a new line.