AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FMX: StringGrid - Die Pixel passen nicht

Ein Thema von Der schöne Günther · begonnen am 5. Apr 2016 · letzter Beitrag vom 5. Apr 2016
Antwort Antwort
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.200 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: FMX: StringGrid - Die Pixel passen nicht

  Alt 5. Apr 2016, 20:46
Eine ganz dumme Frage: Was muss ich in FMX mit den Draw-Events beachten? Entweder ist es für mich heute schon zu spät, oder es hat keine Auswirkung, was ich in dem Event mache. Ich meine, sollte hier nicht irgendetwas ... blau werden?

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawColumnHeader(Sender: TObject;
  const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF);
begin
   Canvas.Fill.Color := TColors.Blue;
   Canvas.FillRect(Bounds, 10.0, 10.0, [TCorner.TopLeft], 0.5);
end;
Oder muss ich hier noch etwas am StringGrid einstellen?
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#2

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.
Angehängte Grafiken
Dateityp: jpg grid3.jpg (13,1 KB, 29x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 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