kann ich auch auf
if Kalender.objects[X,Y]=Kalender
prüfen?
dann bräuchte ich besagte prozedur nicht...
[EDIT]-->Habs mal aus probiert hier also nochmal der komplette Quellcode für alle dies mal brauchen werden:
alles wie oben(hat mit dem einfärben ja nichts zu tun
) ...
Delphi-Quellcode:
DecodeDate(date,year,month,day);
for lauf := 1 to Tage do
begin
Inc(Zaehler);
if count = 7 then
begin
count:=0;
inc(row);
Kalender.Cells[count,row]:=IntToStr(lauf);
inc(count);
end
else
begin
Kalender.Cells[count,row]:=IntToStr(lauf);
inc(count);
end;
if EncodeDate(year,month,zaehler)=date then
begin
Kalender.objects[count-1,row]:=Kalender;
end;
end;
end;
und dann die DrawCell
Delphi-Quellcode:
procedure TForm1.KalenderDrawCell(Sender: TObject; x, Y: Integer;
Rect: TRect; State: TGridDrawState);
begin
(sender as TStringgrid).canvas.Brush.color:=(sender as TStringgrid).color;
if Kalender.objects[X,Y]=Kalender then
begin
(sender as TStringgrid).canvas.Brush.color:=clInfoBk;
(sender as TStringgrid).canvas.FillRect(rect);
(sender as TStringgrid).canvas.TextOut(rect.left+2,rect.top+2,(sender as TStringgrid).Cells[X,Y]);
end;
end;
Ein ganz großes
THX an alle die mir geholfen haben
end.