Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.533 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firemonkey: TStringGrid fixed Columns

  Alt 21. Feb 2016, 19:55
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.
Miniaturansicht angehängter Grafiken
fixed.jpg  
  Mit Zitat antworten Zitat