起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: tomato

【搞定】决策立方的列宽怎样设为可以自己调整**

[复制链接]
发表于 2007-3-6 13:56:03 | 显示全部楼层
有没解决办法啊。我也有这样的情况
回复 支持 反对

使用道具 举报

发表于 2007-3-6 15:28:59 | 显示全部楼层
理论上是可以做的,你先研究研究,做一下,有问题我们再沟通

DecisionGrid.ColCount   用这个取到列的个数
DecisionGrid.ColWidths[I]   用这个访问列的宽度,这里的值是像素
DecisionGrid.RowCount   用这个取到行的个数
DecisionGrid.RowHeights[J]  用这个取到行的高度,这里的值是像素
DecisionGrid.Cells[I, J]  这个就是访问i行的j列的值
回复 支持 反对

使用道具 举报

发表于 2007-3-6 16:24:10 | 显示全部楼层
参考代码:

var
  I, J, L: Integer;
  lCanvas: TCanvas;
begin
  lCanvas := TCanvas.Create;
  try
    lCanvas.Handle := Borland.Delphi.Windows.GetDC(0);
    lCanvas.Font := DecisionGrid.DataFont; //TODO:
    for I := 0 to DecisionGrid.ColCount - 1 do
    begin
      if (I = 0) and (TDecisionGridOption.cgOutliner in DecisionGrid.Options) then
        Continue;
      L := 0;
      for J := 0 to DecisionGrid.RowCount - 1 do
        L := Math.Max(L, lCanvas.TextWidth(DecisionGrid.Cells[I - DecisionGrid.FixedCols, J - DecisionGrid.FixedRows]));
      DecisionGrid.ColWidths[I] := L + 8;
    end;
  finally
    Borland.Delphi.Windows.ReleaseDC(0, lCanvas.Handle);
    lCanvas.Free;
  end;
end;

这段代码必须在DeicsionGrid数据加载出来以后做才可以,也就是说DecisionGrid连接的数据源打开后,再取执行这断代码
回复 支持 反对

使用道具 举报

发表于 2007-3-14 13:19:50 | 显示全部楼层
已经可以了,但有一个问题就是怎么设置列显示数据的对齐方式,默认好像都是居中对齐的
回复 支持 反对

使用道具 举报

发表于 2007-3-14 14:48:10 | 显示全部楼层
已解决

DecisionGrid.Dimensions.Items[1].Alignment :=TAlignment.taLeftJustify;
回复 支持 反对

使用道具 举报

发表于 2007-3-14 15:16:22 | 显示全部楼层
ok
结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-26 21:32 , Processed in 0.040778 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表