Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
Delphi 10.2 Tokyo Professional
|
Re: Allgemeine Verständnisfrage (Feld durchsuchen)
20. Jun 2007, 20:01
Hallo,
es ist vollbracht und der Aufwand war 'nicht' so hoch:
Delphi-Quellcode:
TDBCalendarControl = class(TCalendarControl)
private
FDataLink : TFieldDataLink;
FMaxRecords : Integer;
procedure DataChange(Sender: TObject);
...
protected
procedure LoadDatesForMonth;
...
procedure TDBCalendarControl.DataChange(Sender: TObject);
begin
if (FDataLink.Field <> nil) and not FDataLink.DataSourceFixed then
begin
if FMaxRecords <> FDataLink.DataSet.RecordCount - 1 then
begin
FMaxRecords := FDataLink.DataSet.RecordCount - 1;
FDataLink.DataSourceFixed := True;
LoadDatesForMonth;
end;
end;
end;
procedure TDBCalendarControl.LoadDatesForMonth;
var
I : Integer;
DT : TDateTime;
Y1, Y2, M1, M2, D1, D2 : Word;
begin
FDataLink.DataSet.First;
for I := 0 to FDataLink.DataSet.RecordCount - 1 do
begin
if IsDateTimeField then
DT := Trunc(FDataLink.Field.AsDateTime)
else
DT := Trunc(FDataLink.Field.AsDateTime);
DecodeDate(DT, Y1, M1, D1);
DecodeDate(FDate, Y2, M2, D2);
if (Y1 = Y2) and (M1 = M2) then FDates[D1] := DT;
FDataLink.DataSet.Next;
end;
Invalidate;
FDataLink.DataSourceFixed := False;
end;
Nochmals Danke.
Gruss
Alter Mann
|
|
Zitat
|