Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Firemonkey: TStringGrid fixed Columns (https://www.delphipraxis.net/188322-firemonkey-tstringgrid-fixed-columns.html)

luisk 20. Feb 2016 13:09


Firemonkey: TStringGrid fixed Columns
 
kann man bei TStringGrid Firemonkey auch fixed Columns einstellen, wie bei VCL ?

Harry Stahl 21. Feb 2016 18:55

AW: Firemonkey: TStringGrid fixed Columns
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nein, es gibt da keine fertige Einstellung.

Aber Du kannst es quasi simulieren, Beispiel:

Füge die benötigten Anzahl der StringColumns ein und setze bei der ersten die Hittest-Eigenschaft auf True. Das bewirkt, dass man die erste Spalte nicht mehr anwählen kann (normalerweise bedeutet diese Eigenschaft ja das Gegenteil, in der Kombination mit dem Stringgrid ist die Wirkung aber so, wie von mir beschrieben).

Die erste Spalte musst Du dann aber selber zeichnen, um z.B. einen gräulichen Hintergrund zu erhalten. Hier mal ein Quick and Dirty Demo:

Delphi-Quellcode:
procedure TForm12.FormCreate(Sender: TObject);
var
  L: Integer;
begin
  StringColumn1.Header := 'Tag';
  StringColumn2.Header := 'Infos';

  for L := 0 to 10 do begin
    StringGrid1.cells[0,L] := FormatDateTime ('ddd dd mmm yyyy', Now + L);
  end;
end;

procedure TForm12.StringGrid1DrawColumnCell(Sender: TObject;
  const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
  const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var
  ar: TREctF;
begin
  if Column.Index = 0 then begin
    ar := Bounds;
    ar.Bottom := ar.Bottom-1;
    canvas.BeginScene;
    canvas.ClearRect(ar, TAlphaColorRec.Lightgrey);
    canvas.Fill.Color := TAlphaColorRec.Black;
    canvas.Font.Family := 'Courier New';
    Canvas.FillText(ar, stringgrid1.Cells[Column.Index, row],True,1,[],TTextAlign.taLeading,TTextAlign.taCenter);
    Canvas.EndScene;
  end;
end;
Ergebnis wie im anliegenden Screenshot.

jome 14. Okt 2020 12:36

AW: Firemonkey: TStringGrid fixed Columns
 
Hallo!

im property "Options" des Grids kann man den "Header" deaktivieren.

Für ältere Delphi FMX Versionen gibt es zumindest die Option, den Header über den Style auszublenden:

- Rechte MT auf das Grid, "Edit custom style"
- Den entsprechenden style links im Structure View des Style Designers anwählen (z.B. StringGrid1Style1)
- Unterelement "Background" anwählen, dort "Header" anwählen
- Size.Height auf 1
- Opacity auf 0

Style anwenden. Header ist verschwunden.

Greets
Jome


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz