您的位置:首页 > 其它

BCB6 listView使用的几个技巧

2012-03-03 15:07 567 查看
1. 写入数据

CppSQLite3DB db;
db.open("test.db");
CppSQLite3Query q = db.execQuery("select * from db.tablename");
ListView1->Items->BeginUpdate();
while(! q.eof()){
TListItem *li = ListView1->Items->Add();
li->Caption = q.getIntField(0,0);
for(int i = 1; i < q.numFields(); i++){
li->SubItems->Add(q.fieldValue(i));
}
q.nextRow();
}
ListView1->Items->EndUpdate();


2. 排序

点击报表头,重新排序的操作

void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
TListColumn *Column)
{
Edit1->Text = Column->Index; //列序号,从0开始
Edit2->Text = Column->Tag;	 //自定义数据,与列绑定

Column->Tag = (Column->Tag == 0 ? 1 : 0); //这里用于记忆排序状态
((TCustomListView *)Sender)->CustomSort(NULL, 0); //首项参数为NULL时,调用ListView1Compare,否则调用自定义过程(例如下面的CustomSortProc)。
}


void __fastcall TForm1::ListView1Compare(TObject *Sender, TListItem *Item1,
TListItem *Item2, int Data, int &Compare)
{
Compare = StrToInt(Item1->Caption) > StrToInt(Item2->Caption) ? 0 : 1;
}


int __stdcall CustomSortProc(long Item1, long Item2, long ParamSort)
{
return -CompareText(((TListItem *)Item1)->Caption,
((TListItem *)Item2)->Caption);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: