如何用ListView 显示数据库的数据? 并单击标题排序,而且单某个字段值大于10时候显示不同的颜色?

解决方案 »

  1.   

    while(!DM->Query1->Eof)
       {
         listnum++;
         TListItem *item;
         item = ListView1->Items->Add();
         item->Caption = listnum;
         msg="select catalogname from publicsubjectcatalog where catalog_id in (select  catalog_id from publicsubject where subject_id=(select subject_id from  termpublicsubject where termsubject_id='";
         msg+=DM->Query1->FieldByName("termsubject_id")->AsString+"'))" ;
         SqlOpen(msg ,DM->Query2);
       ....       item->SubItems->Add(DM->Query2->FieldByName("catalogname")->AsString);
         
         item->SubItems->Add(DM->Query3->FieldByName("subject_id")->AsString);
         ....
    这是在我做的工程中摘的,,一看就懂了吧。
      

  2.   

    至于ListView的排序在下面的事件中写。void __fastcall TFormScorecommit::ListView1ColumnClick(TObject *Sender,
          TListColumn *Column)
    {ColumnToSort = Column->Index;
      ((TCustomListView *)Sender)->AlphaSort();
    }
      

  3.   

    ColumnToSort = Column->Index;这句跟排序无关可以删去。
      

  4.   

    还有,显示不同的颜色那个。。好像在ListView中比较难实现的。。帮你查查资料。。
      

  5.   

    robbyzi(红客robby) (★为考研拼命了★) :ColumnToSort 是谁的成员?TListView的吗?
    我运行是总是提示不是TlistView,Columns,Columnt等的面成员,且BCB6的帮助里找也找不到ColumnToSort这个词!
      

  6.   

    ColumnToSort 是一个自定义整数类型的变量,表示根据第几列排序。
      

  7.   

    回复: jinhaiwu(※读毒※)  你就公布出所有代码吧
      

  8.   

    回复: jinhaiwu(※读毒※)  你就公布出所有代码吧
      

  9.   

    全局变量
    int ColumnToSort = 0;//----------------------------------------
    void __fastcall TForm1::ListView1ColumnClick(TObject *Sender, TListColumn *Column){
      ColumnToSort = Column->Index;
      ((TCustomListView *)Sender)->AlphaSort();
    }可惜,如果ListView设置了属性OwnerData为true,并使用了OnData事件,那就需要这段代码就不能排序了
      

  10.   

    ColumnToSort = Column->Index;
      ((TCustomListView *)Sender)->AlphaSort();
    只能排序一次 也看不到三角形
      

  11.   

    提问的分数反映了楼主对自己问题的重视程度你还是把贴子转到BCB版去吧
      

  12.   

    排序:function CustomSortProc( Item1, Item2 : TListItem; lParam : LongInt ) : Integer; stdcall;beginif lParam >= 0 then //lParam中保存的是SubItem的Indexbeginresult := -CompareText(Item1.SubItems.Strings[lParam],Item1.SubItems.Strings[lParam] );end elseresult := 0;end;在ListView的ColumnClick事件响应方法中输入CustomSort(@CustomSortProc, Column.Index );
      

  13.   

    回答第一个问题:
    数据显示LISTVIEW    TListItem* pItem;
        ListView1->Items->Clear();
        Query1->Close();
        Query1->SQL->Clear();
        Query1->SQL->Add("Select * From individual_book Where individual_book.Reachday = '" + FormatDateTime("yyyy-mm-dd", DateTimePicker1->DateTime) + "' and State = '0'");
        Query1->Open();
        while(!Query1->Eof)
        {
            pItem = ListView1->Items->Add();
            pItem->Caption = Query1->FieldByName("IndividualNo")->AsString;
            pItem->SubItems->Append(Query1->FieldByName("Name")->AsString);
            pItem->SubItems->Append(Query1->FieldByName("Telephone")->AsString);
            pItem->SubItems->Append(Query1->FieldByName("Address_1")->AsString);
            Query1->Next();
        }