function ExtractDate(
const S:
string):
string;
var
L: integer;
begin
L := Pos(sLineBreak, S);
if L > 0
then
Dec(L)
else
L:= Length(S);
Result := Copy(S, 1, L);
end;
function CheckDate(
const S:
string): boolean;
var
ADate: TDateTime;
AYear, AMonth, ADay: Word;
begin
Result := false;
if SysUtils.TryStrToDate(ExtractDate(S), ADate)
then
begin
SysUtils.DecodeDate(ADate, AYear, AMonth, ADay);
Result := DateUtils.IsValidDate(AYear, AMonth, ADay);
end;
end;
procedure TForm1.StrGrid_MonatDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
Ausrichtung: TAlignment;
AusrichtungFlag: boolean;
begin
if CheckDate(StrGrid_Monat.Cells[ACol, ARow])
then
begin
if Pos(sLineBreak, StrGrid_Monat.Cells[ACol, ARow]) > 0
then
begin
StrGrid_Monat.Canvas.Font.Color := Konst.Benutzer.TermStrGridEinColorFont;
StrGrid_Monat.Canvas.Brush.Color := Konst.Benutzer.TermStrGridEinColor;
end
else
begin
StrGrid_Monat.Canvas.Font.Color := Konst.Benutzer.TermStrGridColorFont;
StrGrid_Monat.Canvas.Brush.Color := Konst.Benutzer.TermStrGridColor;
end;
end
else
begin
StrGrid_Monat.Canvas.Font.Color := Konst.Benutzer.TermStrGridOtherColor;
StrGrid_Monat.Canvas.Brush.Color := Konst.Benutzer.TermStrGridColor;
end;
StrGrid_Monat.Canvas.FillRect(Rect);
if ACol = 0
then
begin
Ausrichtung := taRightJustify;
AusrichtungFlag := false;
end
else
if ARow > 0
then
begin
Ausrichtung := taLeftJustify;
AusrichtungFlag := true;
end
else
begin
Ausrichtung := taCenter;
AusrichtungFlag := false;
end;
StrGridAusrichtung(StrGrid_Monat, Rect, ACol, ARow, Ausrichtung, AusrichtungFlag);
end;