cxGrid中的问题,一个是保存状态,一个是表头,痛苦 ,分不够再加 (100分)

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

suipianwuda

Unregistered / Unconfirmed
GUEST, unregistred user!
一、cxGrid中是可以实现下面的表头
| 人员 | 工资 |
| 姓名 | 性别 | 工资 |
但是为什么不能实现 将工资变成一个列,cxGrid始终会有一个表头在上面,哪怕你不要用也不行,除非写成‘’????
| 人员 | |
| 姓名 | 性别 | 工资 |

cxGrid中有没有向dbGrid中的那种保存当前表格每一列位置的方法,
当下次打开后,保存上次的宽度和序号?????
 
第一个问题应该可以用自绘方式解决
用如下代码可以
procedure TForm1.cxGrid1BandedTableView1CustomDrawBandHeader(
Sender: TcxGridBandedTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridBandHeaderViewInfo; var ADone: Boolean);
var
r,r1:trect;
begin
r:=AViewInfo.Bounds;
r1:=r;
r1.Top:=r.Top-5;
ACanvas.FillRect(r1);
ACanvas.Pen.Color:=rgb(0,0,0);
ACanvas.MoveTo(r.Left,r.Top);
ACanvas.LineTo(r.Right-1,r.Top);
ACanvas.LineTo(r.Right-1,r.Bottom);
if AViewInfo.Band.Caption='工资' then
begin
ACanvas.DrawTexT('',R,0);
ADone:=TRUE;
end;
end;

procedure TForm1.cxGrid1BandedTableView1CustomDrawColumnHeader(
Sender: TcxGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
var
r:trect;
begin
r:=AViewInfo.Bounds;
if AViewInfo.column.Caption='工资' then
begin
ACanvas.FillRect(r);
ACanvas.Pen.Color:=rgb(0,0,0);
ACanvas.MoveTo(r.Right-1,r.Top);
ACanvas.LineTo(r.Right-1,r.Bottom);
ACanvas.MoveTo(r.Left,r.Bottom-1);
ACanvas.LineTo(r.Right-1,r.Bottom-1);
OffsetRect(r,2,2);
ACanvas.DrawTexT(AViewInfo.column.Caption,r,0);
ADone:=TRUE;
end;
end;
第二个问题用
self.cxGrid1DBTableView1.StoreToIniFile();
self.cxGrid1DBTableView1.RestoreFromIniFile();
祝你好运![:D]
 
我看那个StoreToiniFile()和RestoreFromIniFile()
里面好像要传很多的参数,能不能给我写的详细点

我记得那个dbGrid中很简单,也不要创建什么ini文件,就可以保存一个自定义的文件
有没有那样的方法,
^_^,是不是太懒了呀 ,可不可以qq聊天 或msn呀,59144413 ,suipianwuda@msn.com
 
后退
顶部