delphi - 如何将列宽调整为单元格的内容并允许在 Delphi XE7 中修改宽度?
问题描述
早上好,我正在尝试将网格列的宽度调整为其内容,但我还需要可以手动修改宽度。网格是一个 TStringGrid,我使用的是 delphi XE7。我正在尝试使用以下代码来做到这一点:
procedure gDetailDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
vWidth : Integer;
begin
if (FormPosition.WMaximized = True) then
begin
vWidth := gDetail.Canvas.TextWidth(gDetail.Cells[ACol, ARow]);
if vWidth > aColWidthExpanded[ACol] then
aColWidthExpanded[ACol] := vWidth+20;
gDetail.ColWidths[ACol] := aColWidthExpanded[ACol];
end;
end;
网格正确加载并且列宽正确调整为内容,但我无法手动修改列宽。我做错了什么我无法修改列宽
解决方案
您修改事件中的列宽OnDrawCell
。当您手动更改宽度时,您会触发将OnDrawCell
宽度更改回内容。简而言之,你不能两者都做!
推荐阅读
- azure - Azure 表服务:在 Perl 的 REST API 中授权
- javascript - React Link 和 React Route:试图清除页面但正在发生附加?很奇怪
- c - C如何知道某些代码是可执行的(特别是指向函数的指针)?
- spring-boot - 通过 IMAPS 异步读取电子邮件时无法请求 Spring-Boot 的 API
- java - 使用 Hibernate 的 @PostPersist 方法中的外键中不允许使用 NULL
- r - 使用 Rvest 在多个页面上抓取表格
- javascript - 如何将返回分配给前置元素?
- docker - ddev:从另一个容器调用web容器的某个端口的端点
- python - PYTHON:如何在不使用 pandas 或 numpy 的情况下计算数据帧的相关矩阵?
- python - 获取一个类别Channel的权限并设置为语音通道discord.py