俺现在需要根据用户屏幕的大小来设置StringGrid的大小, 但这时候出现了一个问题: 由于字体的变化, 屏幕可显示的行数也应该随之变化, 因为我现在不能使用滚动条, 所以必须精确算出在字体变化的时候StringGrid可显示的行数俺已经试着用过通过FONT.HEIGHT来进行计算, 无效, 通过设置ROWHEIGHT, 也会时不时多出两行, 谁有好的解决办法?先给五十分, 如果能解决, 不够就加:)

解决方案 »

  1.   

    唉,俺自己解决了:(
    笨办法:(
    代码示例如下:
      If FontDialog1.Execute Then Begin
        StringGrid1.Font := FontDialog1.Font;
        StringGrid1.DefaultRowHeight := ABS(StringGrid1.Font.Height)+8;
        StringGrid1.RowCount := StringGrid1.Height DIV StringGrid1.DefaultRowHeight;
        While StringGrid1.GridHeight >= StringGrid1.Height-4 Do
          StringGrid1.RowCount := StringGrid1.RowCount -1;
      End;