delphi-stringgrid换行的有关问题

delphi-stringgrid换行的问题
今天我在用 Stringgrid控件使用中,想实现让一个单元格中实现换行,我使用的delphi版本是 XE5  

比如 第一行的内容#13#10第二行的内容#13#10第三行的内容

我使用如下的换行代码

procedure TForm34.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
 var Area:TRect;
begin 
  //显示换行的代码
 StringGrid1.Canvas.Font.Assign
 (StringGrid1.Font);
 with StringGrid1,StringGrid1.Canvas do
begin
   FillRect(Rect);
   Area:= Rect;
   InflateRect(Area, -2, -2);
   DrawText(Handle, PChar(Cells[ACol, ARow]),Length(Cells[ACol, ARow]), Area, DT_LEFT)//居中
end;
end;


换行是实现了,但是我的Stringgrid的表头 就出现了2行的文字,本来是1行的内容
delphi-stringgrid换行的有关问题

这应该如何修改,我还是希望可以 表头的内容是 1 行

我从新用写入文字的代码 去修改表头的文字,发现写入一行还是写入2行

谢谢,希望大家指点一下



------解决思路----------------------
1.这个你定义一个二维数组ATable:array [0..6,0..5] of Boolean,对应grid的行和列,当然也是全局的
2.在MouseDown中
判断:当按ctrl,同时按下鼠标时,
注:这里如果不按ctrl中时,先把其它全部写为false;
begin
  strGrid .MouseToCell(X, Y, FiLC, FiLR);
  ATable:[FiLC, FiLR]=true;
  strGrid.Repaint;
end;
3.drawCell中,把
ATable中所有为true的全部变色