TStringGrid: Schriftformatierung für spezielle Zeller des Grids zuweisen
-
Moin
im Objektinspektor kann ich zwar den Font des gesamten Grids ändern (fett/kursiv/normal, farben, schriftart, etc.)
Kann ich auch z.B. einer ganz speziellen Zeile einen spezifischen Font zuweisen, z.B:
StringGrid1->Cells[4][3]->Font->Style << fsBold; //bringt natürlich einen Fehler
wie geht es richtig, sodass alle anderen Zellen unberücksichtigt bleiben (standardeinstellung halt)
mfg
-
Hallo,
schau in den BCB Foren FAQ unter StringGrid (farbige Zellen),
das ist das selbe prinzip, also per canvas malen.mfg
vergissEs
-
Thx
hab das ganzre mal versucht zu iomplementieren, dass die erste fixierte Zeile fett gedruckt ist. es kommt aber weder fehlermeldung noch fettgedruckter text => was mach ich falsch?
void __fastcall TForm1::IndexGridDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if( State.Contains( gdFixed ) ) { IndexGrid->Canvas->Font->Style << fsBold; } // Zelle endlich zeichnen IndexGrid->Canvas->FillRect(Rect); // noch ein Gimmick für die Textausrichtung int hAlign; // text align, 0/1/2 - Left/Center/Right if (ACol % 2) hAlign = 1; else hAlign = 2; // und zum Schluss den Text in die Zelle malen DrawText( IndexGrid->Canvas->Handle, IndexGrid->Cells[ACol][ARow].c_str(), -1, &Rect, DT_SINGLELINE | DT_VCENTER | hAlign ); }
-
StringGrid1->Canvas->Font->Style = StringGrid1->Canvas->Font->Style << fsBold;
Siehe auch die FAQ zu "Umgang mit 'Set'".