經多次實踐,偶終於找到了解決使文字內容在每個cell單元中上下居中的辦法:
就是利用畫板的draw方法,通過“畫”出文字解決了這個問題。哈,不算是旁門左道吧~
實現非常簡單:
設一全句變量: var Iscentre:boolean;
在需要上下居中顯示文字內容時,用語句:
cells[x,y]:=', 並置Iscentre為真;
(注意:一定要賦空值!! 原因見下) ~~~~~x,y為局部變量
給Form1上的stringgrid控件添加OnDrawCell事件,過程代碼:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if iscentre then
stringgrid1.Canvas.TextOut(rect.left+14,rect.top+8,'標題居中' );
end; ~~~~~~~~~~~~~~~~~~~~~~~~~
請根據具體設置調節!
因為此事件被觸發的條件,是發生cell被賦值時, 所以必須先將其置空值以觸發Stringgrid
的onDrawCell事件!