![]() |
TStringGrid.FixedCols rechts darstellen ?
Hallo,
wie könnte ich in einem TStringGrid die FixedCols nicht links sondern rechts darstellen ? mfg |
Re: TStringGrid.FixedCols rechts darstellen ?
Hallo,
nein nicht mit dem Standardgrid. Gruß Frank |
Re: TStringGrid.FixedCols rechts darstellen ?
Wieso soll das mit dem Standardgrid nicht gehen ? :shock:
Delphi-Quellcode:
Die Prozedur muss nur im OnDrawCell des Grids aufgerufen werden.
procedure sgRechts (Sender: TObject; Rect: TRect; ACol, ARow:Integer);
var st: String; begin with Sender as TExtStringGrid do begin Canvas.FillRect(Rect); st := Cells[ACol,ARow]; InflateRect(rect,-2,-2); DrawText(Canvas.Handle, PChar(st), StrLen(PChar(st)),Rect,DT_RIGHT); end; end; |
Re: TStringGrid.FixedCols rechts darstellen ?
Es geht ja nicht um rechtsbündigen Text, sondern darum, die fixen Spalten nicht links, sondern rechts zu haben.
|
Re: TStringGrid.FixedCols rechts darstellen ?
Wenn du nicht gerade die Personal-Edition von Delphi hast kannst du doch in den Quellcode der Stringgrid-Komponente schnüffeln um den Code der linksbündigen FixedCols darstellung in eine rechtsbündige darstellung zu ändern. Die logik sollte die gleiche sein.
|
Re: TStringGrid.FixedCols rechts darstellen ?
Liste der Anhänge anzeigen (Anzahl: 1)
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; |
Re: TStringGrid.FixedCols rechts darstellen ?
Zitat:
Delphi-Quellcode:
if ACol >= (ColCount - FixedRows) then
|
Re: TStringGrid.FixedCols rechts darstellen ?
Zitat:
|
Re: TStringGrid.FixedCols rechts darstellen ?
wie wollt ihr das Scrollen lösen?
Das Zeichnen allein ist ja am Ende noch die kleinste Hürde. Aber sobald das Grid größer ist, funktionierst ja nicht mehr. |
Re: TStringGrid.FixedCols rechts darstellen ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz