某列宽是定长,那如何实现,当一行中该列的数据长度超过该列宽时让它换行。
???????
???????
解决方案 »
- 操作指针变量失败,怎么办?
- 很简单的问题,是关于TIdTCPClient控件的.
- ZIP 数据流压缩 java---急
- 怎样动态的改变DBGrid中Columns的FiledName??
- 怎样用SQL语句对同一字段查询多个值?
- 请教各位高手ClientDataSet
- 运行时发生这个错误,大家遇到了吗? error creating cursor handle.
- query能同时访问6个表么
- 帮帮忙,能详细说明shellexecute()的用法吗?
- Update Pack文件哪里有?
- 有关教育软件合作,大家来看看。帮忙顶顶
- ██【★】关于简易POS机的问题,涉及:收据打印机,驱动,耗材。【★】███
你可以选StringGrid
这个要求并不变态
很正常向CSDN的问题列表这样的效果
var
Str: String;
begin
Str := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
StringGrid1.Cells[1, 1] := Str;
end;procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
ARect: TRect;
Str, TempStr, SubStr: String;
I: Integer;
begin
with StringGrid1 do begin
Str := Cells[ACol, ARow];
if Length(Str) = 0 then exit; TempStr := '';
SubStr := '';
ARect := Rect;
for I := 1 to Length(Str) do begin
if Canvas.TextWidth(TempStr + Str[I]) + 2 >= ColWidths[ACol] then begin
Canvas.TextOut(ARect.Left + 2, ARect.Top, TempStr);
TempStr := '';
ARect.Top := ARect.Top + Canvas.TextHeight('A') + 2;
end;
TempStr := TempStr + Str[I];
end; Canvas.TextOut(ARect.Left + 2, ARect.Top, TempStr);
end;
end;大致就这样吧
你自己再改改
TListView中处理方式类似