procedure TForm1.Button4Click(Sender: TObject);
var
Text: string;
R, TextRct: TRect;
H: Integer;
begin
R := rect(10, 10, 200, 100);
Canvas.Rectangle(R);
Text := 'Demo Line 1'#13'Demo Line 2'#13'Demo Line 3'#13'Demo Line 4';
TextRct := R;
H := DrawText(Canvas.Handle, PChar(Text), -1, TextRct, DT_CALCRECT or
DT_WORDBREAK or DT_EXPANDTABS or DT_VCENTER or DT_CENTER);
R.Top := ((R.Bottom + R.Top) - H) div 2;
R.Bottom := R.Top + H;
DrawText(Canvas.Handle, PChar(Text), -1, R, DT_WORDBREAK or DT_EXPANDTABS or
DT_VCENTER or DT_CENTER);
end;