Nein, das ist true...
Ich habe nun gefunden, woran es liegt:
Code: Alles auswählen
procedure TfrAdressliste.dgAdresseDrawCell(Sender: TObject; aCol, aRow: integer; aRect: TRect; aState: TGridDrawState);
var
txt: string;
TextStyle: TTextStyle;
begin
{ Zellinhalt Holen }
txt := GetCellText(ACol, ARow);
{ Spalte Fett }
if Acol = 2 then
dgAdresse.Canvas.Font.Style := [fsBold];
{ Farben setzen }
if A.IDColor > 0 then
if (aCol > 0) and (aRow >= dgAdresse.FixedRows) then
begin
if AState * [gdFocused, gdSelected] <> [] then
begin
dgAdresse.Canvas.Font.Color := StringToColor(A.Colorhfont);
dgAdresse.Canvas.Brush.Color := StringToColor(A.Colorh);
end
else
begin
dgAdresse.Canvas.Font.Color := StringToColor(A.Colornfont);
dgAdresse.Canvas.Brush.Color := StringToColor(A.Colorn);
end;
end;
{ Textstyle definieren }
if aRow = 0 then
TextStyle.Alignment := taCenter
else
case ACol of
0: TextStyle.Alignment := taCenter;
1: TextStyle.Alignment := taCenter; //Anrede
2: TextStyle.Alignment := taLeftJustify; // Name
3: TextStyle.Alignment := taLeftJustify; // Vorname
4: TextStyle.Alignment := taLeftJustify; // Firma
5: TextStyle.Alignment := taLeftJustify; // Zusatz
6: TextStyle.Alignment := taCenter; // PLZ
7: TextStyle.Alignment := taLeftJustify;// Ort
8: TextStyle.Alignment := taLeftJustify;// Straße
end;
TextStyle.Layout := tlCenter;
TextStyle.SingleLine := True;
TextStyle.Clipping := True;
TextStyle.ExpandTabs := True;
TextStyle.ShowPrefix := True;
TextStyle.Wordbreak := True;
TextStyle.Opaque := False;
TextStyle.SystemFont := False;
TextStyle.RightToLeft := False;
TextStyle.EndEllipsis := False;
dgAdresse.Canvas.FillRect(ARect);
InflateRect(ARect, -varCellpadding, -varCellpadding); // Rechteck kleiner machen
dgAdresse.Canvas.TextRect(ARect, ARect.Left + constCellPadding, ARect.Top + constCellPadding, txt, TextStyle);
end;
Wenn ich die drtittletzte Zeile
durch
ersetze, dann funktioniert es zwar, aber die Spalte ist nicht mehr farbig und er schreibt mir - zusätzlich - 'Title' in den Titel der Spalte.
Da es ja jetzt erst mal so funktioniert und der Fehler lokalisiert ist, setze ich den Thread jetzt auf erledigt.
Anscheinend ist TDrawGrid sehr vielseitig und leistungsfähig, stellenweise aber auch extrem verwirrend.
Ich versuche noch weiter, das etwas schöner zu machen. Ich könnte mir auch gut vorstellen, die Checkbox in einer zweiten FixedCol zu haben.
Jedenfalls haben mir deine Hinweise sehr weiter geholfen - nochmals meinen Dank dafür!
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.