Hallo
DP,
ich benötige ein Stringgrid, da ich ein
CSV-File auslese (ich könnte auch ein CSVDataSet und ein DBGrid benutzen - möchte ich aber nicht, da es den Rahmen sprengen würde) und die Ergebnisse in dem Stringgrid anzeigen möchte.
In meinem Stringgrid sollen die Ergebnisse zentriert und mit der nötigen Breite ausgegeben werde, für beides habe ich Ansätze auf Delphi-Praxis gefunden (
mit entsprechender Breite &
zentriert). Für die Ansätze musste ich "DefaultDrawing" auf "False" setzen.
Dies führte dazu, dass die oberste Zeile (FixedRow) nicht mehr hervorgehoben wurde. Das wollte ich damit kompensieren, dass ich im OnDrawCell-Event abfrage, ob ARow = 0 ist. Sollte dem so sein, so habe ich den Font.Style auf [fsBold] gesetzt. Soweit so gut, wenn ich das Programm ausführe klappt noch alles - allerdings ist nicht nur die erste Zeile fett, sondern alles. Oops, ich habe ja auch vergessen den "else"-Fall zu deklarieren, also:
Delphi-Quellcode:
if ARow = 0 then
sgrdOverview.Canvas.Font.Style := [fsBold]
else
sgrdOverview.Canvas.Font.Style := [];
Dies führt allerdings dazu, dass der benötigte Platz falsch gesetzt wird, wenn ich den "else"-Block wieder entferne, ist zwar alles fett - die Breite wird aber richtig gesetzt.
Ist der "else-Ausdruck" falsch?
Danke und viele Grüße,
Max.
Edit: Ich habe zusätzlich gerade noch ausprobiert, was passiert, wenn ich nichts fett mache. Dann hat alles die richtige Breite .. nunja, ich werde morgen früh kurz debuggen, falls hier keiner auf Anhieb eine Lösung weiß.
Edit: Ich muss mich für diesen unnötigen Post entschuldigen. Nachdem ich mich kurzzeitig von diesem Problem abgewandt hatte, ist mir ein möglicher Lösungansatz gekommen, den ich gerade ausprobiert habe. Dieser funktioniert auch.
Ich prüfe nun zusätzlicher in der Funktion für die Breite, ob die Row = 0 ist, sollte dies so sein, so setze ich erneut den Style auf fsBold.