Einzelnen Beitrag anzeigen

Benutzerbild von Kalakmul
Kalakmul

Registriert seit: 11. Apr 2008
27 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Die Farbe der aktiven Zelle in einem Stringgrid auslesen

  Alt 6. Jan 2024, 23:22
Der Post ist zwar schon älter, aber das Problem hat sich mir jetzt gestellt und ich habe folgende Lösung gefunden:

Offenbar ist ja gewünscht, bei einem bereits dargestellten Stringgrid die Hintergrundfarbe einer bestimmten Zelle zu bestimmen. Das Speichern der Farbe beim Zeichnen im OnPaint-Ereignis der Zelle ist vielleicht nicht immer der geeignetste Weg.

Eine alternative Idee sieht so aus, dass man das Reckteck auf dem Canvas des Stringgrids bestimmt, das zu der gewünschten Zelle gehört. Dann bestimmt man über die Pixels-Eigenschaft des Canvas innerhalb des Rechtecks die Farbe.
Delphi-Quellcode:
var
  LCellRect: TRect;
  LSpalteNr, LZeileNr: Integer;
  LColor: TColor;
begin
  // ... hier die gewünschte LSpalteNr und LZeileNr definieren
  // Zellrechteck erimtteln
  LCellRect := StringGrid1.CellRect(LSpalteNr, LZeileNr);
  // Farbe im Rechteck ermitteln
  LColor := StringGrid1.Canvas.Pixels[LCellRect.Left + 2, LCellRect.Top + 2]; // Rand des Stringgrids berücksichtigen!
  // ... hier etwas mit der Farbe (LColor) machen
end;
Ich hoffe, das hilft auch anderen.
Wer fragt, ist ein Narr für 5 Minuten, wer nicht fragt, ist ein Narr ein Leben lang.
  Mit Zitat antworten Zitat