|
这个是我在DataGrid写的OnCustomDrawCell事件
procedure TCT_Form.DataGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
var
view_max_len : Integer; // 允许显示的最大字符长度
view_HR_len : Integer; // 每行显示的字符长度
temp : string;
temp2: string;
begin
if DataSetBroker1.DataSet.State = TDataSetState.dsInactive then
exit;
view_max_len := 15;
view_HR_len := 5;
// 检查内容
if (TDataGridColumn(AColumn).FieldName= 'GZNRMS') then
begin
if AText.Length > view_max_len then
begin
AText := AText.Substring(0,view_max_len) + '...';
end;
// 每view_HR_len个字符换行
temp := AText;
temp2:= '';
while temp.Length > view_HR_len do
begin
temp2 := temp2 + temp.Substring(0,view_HR_len) + #13#10; // 添加换行
temp := temp.Substring(view_HR_len);
end;
if temp2 <> '' then
begin
temp2 := temp2 + temp;
AText := temp2;
end;
end;
end;
但是没有达到我想要的效果,在浏览状态下还是只能显示一行,如下:
测试显示字符串1234567890
我想要的效果是:
测试显示字
符串123
45678
90
|
|