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!
-
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.