StringGrid.Font 和 StringGrid.Canvas.Font 有何区别?(50)

  • 主题发起人 主题发起人 delhpi
  • 开始时间 开始时间
D

delhpi

Unregistered / Unconfirmed
GUEST, unregistred user!
刚刚发现 好像不是一回事。
 
StringGrid重画时用StringGrid.Font:=StringGrid.Canvas.Font
 
说错了StringGrid重画时用StringGrid.Canvas.Font:=StringGrid.Font
 
好像不会自动StringGrid.Canvas.Font:=StringGrid.Font 的。我在FORMCREATE里,分别调用StringGrid.Canvas.Font.Size和StringGrid.Font.Size发现2者大小不同。除非先StringGrid.Canvas.Font:=StringGrid.Font
 
如果在FORMPAINT里,分别调用StringGrid.Canvas.Font.Size和StringGrid.Font.Size刚启动运行时,发现2者大小不同。如果切换一下窗口,程序再次PAINT时,2者自动一致了。
 
我认为 Canvas 是 TStringGrid 聚合的一个 绘制功能类.
 
Canvas.font只能运行时动态赋值,如果不另外搞一个TStringGrid.Font,那么在IDE就无法预先设置。
 
哦 谢谢楼上。但是为何 程序第一次运行时,2个Font对象的Size不一样呢?memo1.lines.add('Sg Font Size '+inttostr(Sg.Font.Size));memo1.lines.add('Sg Canvas Font Size '+inttostr(Sg.Canvas.Font.Size));不管是把代码放在CREATE SHOW PAINT任何一个地方。刚启动时,2者都不一样。
 
多人接受答案了。
 
后退
顶部