首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

StringGrid 有关问题

2013-07-09 
StringGrid 问题如何实现两行StringGrid的内容互换啊?我想实现比较StringGrid某一栏属性的大小,然后根据这

StringGrid 问题
如何实现两行StringGrid的内容互换啊?我想实现比较StringGrid某一栏属性的大小,然后根据这一栏,各个行重新排序。大家有没有办法实现整行之间的互换啊?

还有DBGrid能人为的往某行某列填数据,让其显示吗?
[解决办法]
互换用中间变量替换可以吧
String str
str = StringGrid1->Cell[0][1];
StringGrid1->Cell[0][1] =  StringGrid1->Cell[1][1];
StringGrid1->Cell[1][1] = str;


DBGrid就是dataset操作
[解决办法]
1. TStringGrid 本身已提供 MoveRow 的功能,这样使用:

class TMyStringGrid: public TStringGrid
{
public:
    void __fastcall MoveRow(int FromIndex, int ToIndex)
    {
        TStringGrid::MoveRow(FromIndex, ToIndex);
    }
};

// ---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // 将第2行移动到第4行
    ((TMyStringGrid *)StringGrid1)->MoveRow(1, 3);
}


2. DBGrid 想人工填充数据,使用内存表就行了,简单说就是利用 TClientDataSet,具体的代码可以 Google 一下。
[解决办法]
TStringGrid::MoveRow(FromIndex, ToIndex); 有这个方法的啊  莫非你的版本是6?
[解决办法]
DBGrid 可以透過 TClientDataSet 物件當中繼任意填充數據...必須先將 LockType 設置為 ltBatchOptimistic 才能變更數據......

热点排行