Einzelnen Beitrag anzeigen

Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Hintergrundfarbe einzelner Zellen im Stringgrid ändern.

  Alt 10. Okt 2008, 12:49
Tachsche

Guckmal hier hab ich was für dich, dein StringGrid hat ein ereigniss OnDrawCell, da Kopierst du das rein

Die Spaltenzahl erhöst du mal auf 12 und wenn du das gemacht hast, gib mal "ja" in eine Zelle ein, vorher natürlich die Farben setzen.

viel spass damit

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
Var Celltext :string;
    Farbe: boolean;
    StC: TCanvas;
begin
   StC := StringGrid1.Canvas;
   With (Sender As TStringGrid) do
    begin
     
      Textformat := DT_SINGLELINE;
      Celltext := Cells[ACol, ARow];
      Farbe := True;

      //Text wird zentriert
      Textformat := Textformat Or DT_CENTER Or DT_VCENTER;

      if (ACol = 1) Or (ACol = 0) Then {//Zentrieren für spalten 1 und 0}
        begin
          StC.Font.Style := StC.Font.Style + [fsBold]; //Text fett
        end;

      if (ACol > 1) and (ACol < 11)then
       begin
          begin
            if LowerCase(Cells[ACol, ARow]) = 'Jathen
             begin
               StC.Brush.Color := //Deine Zellenfarbe
               StC.Font.Color := // Deinen Zellen Schriftfarbe
               Canvas.Font.Style := StC.Font.Style + [fsBold]; //Text fett
             end;
         end
       begin
         if (Farbe) then
          begin
           //Zelle einfärben
           SetBkMode(StC.Handle, OPAQUE);
           StC.FillRect(Rect);
          end;

         //Abschliessend den Text zeichnen
         DrawText(StC.Handle, PChar(Celltext), Length(celltext), Rect, Textformat);
       end;
   end;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat