大虾们你们在哪里?我想在 DBGrid 中放大字体。 (60分)

  • 主题发起人 主题发起人 slxiao112
  • 开始时间 开始时间
S

slxiao112

Unregistered / Unconfirmed
GUEST, unregistred user!
字段宽度一定,要求在表格中显示的数据写满。即:

原(宋9号): [ 张老三 ]

改为(宋一号):[张 老 三 ]

在 onDrawDataCell 中代码该怎样写?
 
dbgrid1.Canvas.Font.Size := 20;
dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
以上两句可以改变字体大小,如果需要改变里面的内容,大概就需要自己继续写代码了
类似下面这句话
dbgrid1.Canvas.TextRect(Rect,0,0,'aaa');

还有一种办法就是使用SetText设置字体内容,然后使用最上面的两句话设置字体。
 
下面的代码是可行的,我的目的可以达到。
问题是:
在 DBGrid1 单击右键,点Columns Editor... 项,按 Add All Fields 按钮后执行
工程,发现onDrawDataCell 事件没有执行,我该怎么办?



procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
s:string;
x,l2, l1,l,i:integer;
begin
dbgrid1.Canvas.FillRect(rect);
dbgrid1.Canvas.Font.Color :=clred;
s:=field.Text ;
l:=length(s);
if l=0 then exit;
l1:=rect.Right -rect.Left ;

l2:=l1 div l;
x:=0;
for i:=0 to l-1 do
begin
x:=l2*i;
dbgrid1.Canvas.TextOut(rect.left+x,rect.top,s[i+1]);
end;
end;
 
使用DrawColumnCell事件。
 
s:=dbgrid1.DataSource.DataSet.Fields[DataCol].AsString ;
 
to yzhshi :
快到我的其他问题里取分。
谢谢。
 
其他的分就不去了,呵呵。大概还混了5分,刚才没看见你的那个帖子,不过那里我给出了你的所有代码。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部