Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 18:55
Hier mal ein Ansatz, um die Spalte ganz rechts als Fixed zu setzen.
(Gibt noch ein Fehler beim Zeichnen wenn eine Zelle der zweitletzten Spalte selektiert wird und dann
eine andere Zelle selektiert wird.)

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  TempRect: TRect;
begin
  with Sender as TStringGrid do
  begin
    if ACol = Pred(ColCount) then
    begin
      TempRect := Rect;
      Canvas.Brush.Color := FixedColor;
      Canvas.FillRect(TempRect);
      DrawEdge(Canvas.Handle, TempRect, BDR_RAISEDINNER, BF_RECT);
      Canvas.Brush.Color := clBlack;
      with TempRect do
      begin
        Bottom := Bottom + 1;
        Top := Top - 1;
        Left := Left - 1;
        Canvas.FrameRect(TempRect);
      end;
    end;
  end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  CanSelect := ACol <> Pred((Sender as TStringGrid).ColCount);
end;
Miniaturansicht angehängter Grafiken
fixed_col_right_594.jpg  
Thomas
  Mit Zitat antworten Zitat