StringGrid Caption und Text

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
aldi
Beiträge: 59
Registriert: Sa 26. Apr 2014, 14:03

StringGrid Caption und Text

Beitrag von aldi »

hallo,
bin immer noch beim StringGrid, und habe noch eine Zusätzliche Frage.
Wenn ein bestimmter Wert in einer Spalte(5) steht, soll sich diese Zeile einfärben.
Soweit funktioniert es auch, aber mit Einschränkungen!

a.) die Überschriften der Spalten fehlen ??
b.) der text steht nicht mehr in der Mitte (zentriert)

Was ist am Quelltext (blau) falsch? Was muss ich hier ändern?

Hier ein Beispiel:
[/attachment]
StringGrid1.png
StringGrid1.png (5.99 KiB) 1081 mal betrachtet
Dateianhänge
stringGrid2.png
StringGrid4.png
StringGrid4.png (5.37 KiB) 1081 mal betrachtet

wp_xyz
Beiträge: 5134
Registriert: Fr 8. Apr 2011, 09:01

Re: StringGrid Caption und Text

Beitrag von wp_xyz »

Für solche Maßnahmen ist das OnDrawCell-Ereignis nicht das richtige, weil du zuviel selbst neu programmieren musst. Besser geeignet ist OnPrepareCanvas. Setze hier einfach die Hintergrundfarbe die du willst. Und um Text zu zentrieren, nimmst du am besten den TextStyle des Canvas:

Code: Alles auswählen

 
procedure TForm1.StringGrid1PrepareCanvas(sender: TObject; aCol, aRow: Integer;
  aState: TGridDrawState);
var
  ts: TTextStyle;
begin
  if (ACol = 6) then begin
    if StringGrid1.Cells[6, ARow] = 'Test' then
      StringGrid1.Canvas.Brush.Color := clYellow
    else
    if StringGrid1.Cells[6, ARow] = 'Eingang' then
      StringGrid1.Canvas.Brush.Color := clGray;
    // etc.
 
    // Alle Zellen in Spalte 6 zentrieren
    ts := StringGrid1.Canvas.TextStyle;
    ts.Alignment := taCenter;
    StringGrid1.Canvas.TextStyle := ts;
  end;
end;       

aldi
Beiträge: 59
Registriert: Sa 26. Apr 2014, 14:03

Re: StringGrid Caption und Text

Beitrag von aldi »

hallo,

erstmal vielen dank für Deine Hilfe!
Soweit läuft alles sehr gut, jetzt wird aber nicht die ganze Zeile eingefärbt sonder nur die Spalte.

danke

wp_xyz
Beiträge: 5134
Registriert: Fr 8. Apr 2011, 09:01

Re: StringGrid Caption und Text

Beitrag von wp_xyz »

Ich wollte dir ja nur das Prinzip zeigen und keine fertige Lösung präsentieren, ich weiß ja gar nicht, was du genau erreichen willst.

Das "if (ACol = 6)..." bewirkt, dass die die Änderung der Hintergrundfarbe nur in der 6. Spalte gilt. Ich hoffe, dass es jetzt funkt und du weißt, was zu ändern ist, um die ganze Zeile einzufärben.

aldi
Beiträge: 59
Registriert: Sa 26. Apr 2014, 14:03

Re: StringGrid Caption und Text

Beitrag von aldi »

JA, Stimmt :-)

Danke :-)

Antworten