Problem mit ListBox::CustomDrawItem (war: Fehler bei Compilierung)



  • Hallo,

    ich will Einträge in meinem ListView farbig machen. Habe dazu auch die FAQ und andere Infos eingeholt. Jedoch gibt es bei mir Fehler beim Compilieren. meine Methode ist OnCostumDrawItem für mein ListView:

    void __fastcall TtfRemasterViewer::OnCostumDrawItem(
          TCustomListView *Sender, TListItem *Item, TCustomDrawState State,
          bool &DefaultDraw)
    {
      TColor Backgroundcolor;
    
      //Farben übergeben i ist z.B ein IntegerWert
       switch( Color )
       {
          case 0:
            Backgroundcolor = clGreen;
            break;
          case 1:
            Backgroundcolor = clSkyBlue;
            break;
          case 2:
            Backgroundcolor = clYellow;
            break;
          case 3:
            Backgroundcolor = clRed;
            break;
       }
    
       Sender->Canvas->Brush->Color = Backgroundcolor;
    }
    

    Der Aufruf erfolgt folgendermassen:

    OnCostumDrawItem(tlvRemasterInfo, tlvRemasterInfo->Items->Item[i], cdsIndeterminate, false);
    

    Beim Compilieren kommen folgende Fehlermeldungen:

    [C++ Fehler] MainForm.cpp(198): E2034 Konvertierung von 'ComCtrls__9' nach 'TCustomDrawState' nicht möglich

    [C++ Fehler] MainForm.cpp(198): E2342 Keine Übereinstimmung des Typs beim Parameter 'State' ('TCustomDrawState' erwartet, 'ComCtrls__9' erhalten)

    [C++ Warnung] MainForm.cpp(198): W8030 Temporäre Größe für Parameter 'DefaultDraw' in Aufruf von '_fastcall TtfRemasterViewer::tlvRemasterInfoCustomDrawItem(TCustomListView *,TListItem *,TCustomDrawState,bool &,int)' verwendet

    Wer kann mir helfen?

    Danke 🙂

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!


  • Mod

    Hallo

    verstehe ich dich richtig

    du ruft

    OnCostumDrawItem(tlvRemasterInfo, tlvRemasterInfo->Items->Item[i], cdsIndeterminate, false);
    

    in deinem Programm selbst auf 😕

    MfG
    Klaus



  • Das habe ich jetzt auch gemerkt. Aber jetzt habe ich das Problem das nur eine Farbe gesetzt wird.



  • Dann wirst du dich wohl mal um deine Color-Variable kümmern müssen und prüfen, ob/warum diese immer denselben Wert hat.


Anmelden zum Antworten