listview nach captions sortieren lassen



  • hallo leute!
    ich hab mir mal in der hilfe die kleinigkeit angeschaut/ausprobiert mit der ich in meinem listview in der vsreport ansicht (BCB6!!) nach den columns sortieren möchte, je nachdem auf welches ich klicke. in der hilfe stand folgendes:

    -------------------------------------------------------

    int ColumnToSort = 0;

    Die Ereignisbehandlungsroutine OnColumnClick setzt die globale Variable, um die zu sortierende Spalte festzulegen und ruft AlphaSort auf:

    void __fastcall TForm1::ListView1ColumnClick(TObject *Sender, TListColumn *Column)
    
    {
      ColumnToSort = Column->Index;
      ((TCustomListView *)Sender)->AlphaSort();
    }
    

    Die Ereignisbehandlungsroutine OnCompare veranlaßt die Listenansicht, die Sortierung anhand der markierten Spalte vorzunehmen:

    void __fastcall TForm1.ListView1Compare(TObject *Sender, TListItem *Item1, TListItem *Item2, int Data, int &Compare)
    {
      if (ColumnToSort == 0)
        Compare = CompareText(Item1->Caption,Item2->Caption);
      else
      {
        int ix = ColumnToSort – 1; //hier kommt ein fehler
        Compare = 
          CompareText(Item1->SubItems->Strings[ix], Item2->SubItems->Strings[ix]);
      }
    }
    

    ----------------------------------

    nur er sagt mir bei in der zeile int ix= ColumnToSort - 1; einen fehler der besagt: "Ungültiges Char Zeichen "|" (0x96)

    was tu ich falsch?? wo liegt der fehler ??

    <edit>Bitte Code-Tags benutzen die 2te! - Danke.</edit>

    [ Dieser Beitrag wurde am 13.03.2003 um 21:46 Uhr von junix editiert. ]

    sorry...werds mir merken °°

    [ Dieser Beitrag wurde am 13.03.2003 um 21:54 Uhr von defjam01 editiert. ]



  • mmh ich hab einfach mal den teil den ich eben bemängelt habe auskommentiert und komischerweise funktioniert das dann auch so :))) denn dieses else teil tritt ja nur in kraft falls das if nicht einsetzt...und eigentlich kommt das doch immer zum einsatz, weshalb ich mir dachte kommentiere ich es mal aus. und es klappt :)) also der thread kann geschlossen werden, es sei denn jemand erklärt mir wozu das da ist und wie ich es dann zum laufen bringe.

    greetz defjam01


Anmelden zum Antworten