TSTringGrid Probleme beim zeichnen
-
Servus liebe Gemeinde,
Ich hab mal wieder ein kleines Problemchen, und zwar folgendes. Ich habe ein Grid in verschiede Sektionen unterteilt. Die einzelnen Überschriften der Sektionen werden in der Zelle dann linksbündig fett geschrieben und die Eigenschaften der Sektion dann wieder rechtsbündig in normaler Schrift. Zu meinem Problem: Die Tabelle hat mehrere Spalten. Logischerweise sind die ja nun durch eine dünne Linie voneinander getrennt. Und genau die Linien möchte ich jetzt weghaben. Ich hab das jetzt im OnDrawCell Event probiert, aber keinen Erfolg erzielt. Die Schrift und der Hintergrund aller Zellen wird richtig gezeichnet, nur die Rahmen der einzelnen Zellen bekomm ich net weg. Gemacht hab ich das so.
void __fastcall TForm1::Grid_DrawCell(TObject *, int ACol, int ARow, TRect &Rect, TGridDrawState State) { // Zellen die links fett stehen sollen // in der ganzen Zeile sollen keine Spaltenlinien mehr sichtbar sein Grid->Canvas->Pen->Color = clWhite; Grid->Canvas->Brush->Color = clWhite; Grid->Canvas->Font->Color = clBlack; Grid->Canvas->Font->Style = TFontStyles() << fsBold ;
und gezeichnet dann so..
Grid->Canvas->FillRect(Rect); // Zelle Hintergrund zeichnen int hAlign = 0; DrawText(Grid->Canvas->Handle, Grid->Cells[ACol][ARow].c_str(), -1,&Rect,DT_SINGLELINE | DT_VCENTER | hAlign); // Text zeichnen }
Wenn ich jetzt die Zellen so zeichen lasse, sehen sie allerdings immernoch wie vorher aus, obwohl ja eigentlich damit der schwarze Rand der einzelnen Zelle verschwunden sein müsste. Kann mir plz mal einer sagen was da bei mir schief läuft. Danke.
P.S.: DefaultDrawing ist schon false...
MfG TFX
-
Du mußt einfach das Zellrechteck beim Zeichnen des Hintergrundes um die LinienDicke vergrößern.
void __fastcall TForm1::Grid_DrawCell(TObject *, int ACol, int ARow, TRect &ARect, TGridDrawState State) { TRect rect(ARect); int w = Grid->GridLineWidth; rect.Top -= w; rect.Left -= w; rect.Right += w; rect.Bottom += w; Grid->Canvas->FillRect(rect); }
-
Braunstein schrieb:
Du mußt einfach das Zellrechteck beim Zeichnen des Hintergrundes um die LinienDicke vergrößern.
Oh mein Gott
, na da hätt' ich auch selber drauf kommen können. Verdammt!!! Danke für den Hinweis....