Thema: Delphi Zelle teilen

Einzelnen Beitrag anzeigen

Benutzerbild von SaFu
SaFu

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

Re: Zelle teilen

  Alt 18. Dez 2007, 21:20
Vielleicht sollte ich sagen das ich noch diesen code habe der was drüber zeichnet könnte es dadurch schwerder werden

Delphi-Quellcode:
procedure TForm7.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var Celltext :string;
    Farbe :boolean;
    Textformat :cardinal;
    n :integer;
begin
  Textformat:= DT_SINGLELINE;
   with (Sender as TStringGrid) do

    begin
     Celltext:= Cells[ACol, ARow];
     Farbe:= True; //Standardeinstellung der Zellen ist einfarbig

      if (Cells[ACol,ARow] = 'fa') or (Cells[ACol,ARow] = 'FA')then
        begin
          Canvas.Brush.Color:= ClRed; //Zellenfarbe
          Canvas.Font.Color:= ClWhite; //Schriftfarbe
          Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
        end;

     if (Cells[ACol,ARow] = 'np') or (Cells[ACol,ARow] = 'NP')then
        begin
          Canvas.Brush.Color:= ClBlue; //Zellenfarbe
          Canvas.Font.Color:= ClWhite; //Schriftfarbe
          Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
        end;

     if (Cells[ACol,ARow] = 'aa') or (Cells[ACol,ARow] = 'AA')then
       begin
        Canvas.Brush.Color:= ClGreen; //Zellenfarbe
        Canvas.Font.Color:= ClWhite; //Schriftfarbe
        Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
       end;

    if (Farbe) then
       begin
        //Hintergrund überschreiben
        SetBkMode(StringGrid1.Canvas.Handle, OPAQUE);
        Canvas.FillRect(Rect)
       end;

    if (ACol = 1) or (ACol = 0) then
       begin
        //Text wird zentriert
        Textformat:= Textformat or DT_CENTER or DT_VCENTER ;
        Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
       end;

    if (ACol > 1) then //Zentrieren für alle Zellen
       begin
        //Text wird zentriert
        Textformat:= Textformat or DT_CENTER or DT_VCENTER;
       end;
  //Hier wird nun der Text ausgegeben
  DrawText(Canvas.Handle, PChar(Celltext), Length(celltext), Rect,Textformat);
end;
begin //Linien zwischen Zellen erzeugen
 n:=0 ;
 repeat
  n:=n+4;
   if (ARow = n) and (ACol >= StringGrid1.FixedCols) then
    begin
     StringGrid1.Canvas.Pen.Color := clBlack; // Linienfarbe
     StringGrid1.Canvas.Pen.Width := 2; // Stärkt der Linie
     StringGrid1.Canvas.MoveTo(Rect.Left,Rect.Bottom);
     StringGrid1.Canvas.LineTo(Rect.Right,Rect.Bottom);
    end;
  until n= 24;
 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