相关疑难解决方法(0)

Delphi - 在rect的中心绘制文本多行

在Delphi中,我希望在TRect中绘制文本.我希望有以下功能:

  1. 在TRect中垂直居中绘制文本
  2. 在TRect中水平居中绘制文本
  3. 如果有超过1行文本的空间(使用TRect的高度),则绘制文本多行
  4. 如果文本不适合TRect(在单行或多行上),则将省略号附加到文本.

我可以看到Windows.DrawText()函数几乎涵盖了这个功能,但是在写文本时,多行和垂直居中是互斥的.

我想知道这个功能是否内置于Windows(2000+)?如果没有,有没有办法在不编写自己的功能的情况下这样做?

delphi text

8
推荐指数
2
解决办法
1万
查看次数

将图形栏添加到StringGrid col

使用Delphi 2010和TStringGrid组件,我目前显示数据库查询中的五个fild.

这是我正在做的一个简单的例子

//设置网格

procedure TGriddata.FormCreate(Sender: TObject);
begin
 grdMain.Rows[0].commatext:='"One","Two","Three","Four","Five"';
 grdMain.ColWidths[0]:= 50;
 grdMain.ColWidths[1]:= 175;
 grdMain.ColWidths[2]:= 175;
 grdMain.ColWidths[3]:= 100;
 grdMain.ColWidths[4]:= 300;
end;
Run Code Online (Sandbox Code Playgroud)

//显示网格中的数据//注意,我没有显示查询的创建,执行或销毁

procedure TGriddata.load;
begin
 ... 
 grdMain.Cells[0,row]:= FieldByName('one').AsString;
 grdMain.Cells[1,row]:= FieldByName('two').AsString;
 grdMain.Cells[2,row]:= FieldByName('three').AsString;
 grdMain.Cells[3,row]:= FieldByName('four').AsString;
 //draw progress bar here
 ...
end;
Run Code Online (Sandbox Code Playgroud)

其中一列("五")需要在col中显示海军蓝色水平条.它还应该显示一些以栏为中心的文本.我没有使用自定义绘图的经验.我设置的哪些属性只能自定义绘制一列并使用其他列的默认绘图?

delphi custom-draw delphi-2010 stringgrid

6
推荐指数
1
解决办法
4007
查看次数

标签 统计

delphi ×2

custom-draw ×1

delphi-2010 ×1

stringgrid ×1

text ×1