Ausschnitt aus StringGrid farbig markieren



  • Hallo, ich habe in die FAQ geschaut, ja. Da hab ich auch den Codeschnipsel her. Ich möchte aber im Rahmen einer Schleife einige Felder farbig, meinetwegen gelb, markieren. Das habe ich dem Beispiel nicht entnehmen können.
    Wie muss ich es implementieren? Danke.

    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
    {
    	if (ACol == ??? && ARow == ???)
    		StringGrid1->Canvas->Brush->Color = clYellow;
    	StringGrid1->Canvas->FillRect(Rect);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    	const int z = 2, s = 3;
    	for (int i = 0; i < z; i++)
    		for (int j = 0; j < s; j++)
    			//Wie übergebe ich hier i und j an DrawCell, so dass die ersten 6 Elemente farbig sind?
    }
    //---------------------------------------------------------------------------
    


  • Das geht nur innerhalb der DrawCell-Routine. Diese wird für jedes sichtbare Feld aufgerufen. Für welches Feld die Funktion gerade aufgerufen wird, wird in ACol und ARow übergeben. Du mußt einfach nur prüfen ob die in ACol und ARow übergebenen Werte zu den Feldern gehört, die farbig gezeichnet werden sollen.


Anmelden zum Antworten