要把StringGrid改成象ListView那样可以拖拉,应该怎么改?(50分)

  • 主题发起人 主题发起人 MicroZeng
  • 开始时间 开始时间
重载StringGrid的mousedown事件.
 
1.OnMouseDown: 用StringGrid.MouseToCell判断是否标题行, 如果是, 则
记录列号到个变量中.
2. OnMouseMove: 判断是否鼠标按下(是否在拖动), 如果是则显示移动图
案(如果你高兴这么做的话)
3. OnMouseUpp: 用StringGrid.MouseToCell判断当前鼠标所在的列.
4. 将旧列移动到新列的位置:
for i := 0 to StringGrid.RowCount - 1do
StringGrid.Rows.Move(老列号, 新列号);
 
我没有说明清楚:
在邮件软件中,我用StringGrid来列邮件,左边的是邮件夹,象OutLook Express
那样。我想拖拉一些邮件到某一个邮件夹。而且邮件必须可以是MultSelect,这一点
StringGrid好象做的不好。而且,StringGrid在拖拉时,会随着Mouse的移动而改变
StringGrid.Row。
原本用ListView可以轻松实现,但是用StringGrid时就不好用了。我又不想太多改动程序。
我该怎么办?怎么做到能MultSelect和Drag。
 
最好用listview,其次用dbgrid.
 
多人接受答案了。
 
后退
顶部