Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

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

AW: FMX: StringGrid - Die Pixel passen nicht

  Alt 5. Apr 2016, 22:22
Hier mal ein kleines Beispiel:

Delphi-Quellcode:
procedure TForm18.StringGrid1DrawColumnHeader(Sender: TObject;
  const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF);
begin
  canvas.BeginScene;
  
  // Hintergrund leeren bzw. ausfüllen
  canvas.ClearRect(bounds,TAlphaColorRec.LightGray);

  // Linienbreite
  canvas.Stroke.Thickness := 0.2;
  canvas.Fill.Color := TAlphaColorRec.Silver;

  if Column.Index >0 then begin
    // Linie links
    canvas.DrawLine(PointF (bounds.Left, bounds.Top), PointF (bounds.left, bounds.Bottom), 1);
  end;

  canvas.DrawLine(PointF (bounds.Left, bounds.Bottom), PointF (bounds.Right, bounds.Bottom), 1);

  canvas.Fill.color := TAlphaColorRec.black;
  canvas.FillText(Bounds, column.Header, false, 1, [], TTextAlign.Center, TTextAlign.Center);

  canvas.EndScene;
end;
Unter Windows 10 sieht das aus, wie im anliegenden Screenshot. Für Deine Bedürfnisse kannst Du das ja entsprechend anpassen, auch hinsichtlich der Farben. Soll der Header allerdings anklickbar sein, müsstest Du die verschiedenen Verhaltensweisen (Mouse fährt drüber, Klick down) auch noch selber hier zeichnen, würde dann also deutlich komplizierter werden.

Wäre evtl. auch sinnvoll, das als Bug zu melden, denn das sieht gerade unter Windows 10 ziemlich bescheiden aus.
Miniaturansicht angehängter Grafiken
grid3.jpg  
  Mit Zitat antworten Zitat