fix ReadOnly for rxDBDateEdit

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2492 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2012-08-26 10:35:54 +00:00
parent e24c69622d
commit f4e3cdde5d
2 changed files with 52 additions and 47 deletions

View File

@ -159,6 +159,7 @@ end;
procedure TDBDateEdit.SetReadOnly(const AValue: Boolean); procedure TDBDateEdit.SetReadOnly(const AValue: Boolean);
begin begin
inherited SetReadOnly(AValue);
FDataLink.ReadOnly:=AValue; FDataLink.ReadOnly:=AValue;
end; end;

View File

@ -526,6 +526,8 @@ type
procedure DrawCell(aCol, aRow: integer; aRect: TRect; aState: TGridDrawState); procedure DrawCell(aCol, aRow: integer; aRect: TRect; aState: TGridDrawState);
override; override;
procedure LinkActive(Value: boolean); override; procedure LinkActive(Value: boolean); override;
procedure SetDBHandlers(Value: boolean);virtual;
procedure DrawFooterRows; virtual; procedure DrawFooterRows; virtual;
procedure DoTitleClick(ACol: longint; AField: TField); virtual; procedure DoTitleClick(ACol: longint; AField: TField); virtual;
@ -2428,58 +2430,60 @@ begin
F_SortListField.Clear; F_SortListField.Clear;
if {not (csDestroying in ComponentState) and} not (csDesigning in ComponentState) then if {not (csDestroying in ComponentState) and} not (csDesigning in ComponentState) then
SetDBHandlers(Value);
end;
procedure TRxDBGrid.SetDBHandlers(Value: boolean);
begin
if Value then
begin begin
if Value then if DataSource.DataSet.OnFilterRecord <> @FilterRec then
begin begin
if DataSource.DataSet.OnFilterRecord <> @FilterRec then F_EventOnFilterRec := DataSource.DataSet.OnFilterRecord;
begin DataSource.DataSet.OnFilterRecord := @FilterRec;
F_EventOnFilterRec := DataSource.DataSet.OnFilterRecord; end;
DataSource.DataSet.OnFilterRecord := @FilterRec; if DataSource.DataSet.BeforeDelete <> @BeforeDel then
end; begin
if DataSource.DataSet.BeforeDelete <> @BeforeDel then F_EventOnBeforeDelete := DataSource.DataSet.BeforeDelete;
begin DataSource.DataSet.BeforeDelete := @BeforeDel;
F_EventOnBeforeDelete := DataSource.DataSet.BeforeDelete; end;
DataSource.DataSet.BeforeDelete := @BeforeDel; if DataSource.DataSet.BeforePost <> @BeforePo then
end; begin
if DataSource.DataSet.BeforePost <> @BeforePo then F_EventOnBeforePost := DataSource.DataSet.BeforePost;
begin DataSource.DataSet.BeforePost := @BeforePo;
F_EventOnBeforePost := DataSource.DataSet.BeforePost; end;
DataSource.DataSet.BeforePost := @BeforePo; if DataSource.DataSet.OnDeleteError <> @ErrorDel then
end; begin
if DataSource.DataSet.OnDeleteError <> @ErrorDel then F_EventOnDeleteError := DataSource.DataSet.OnDeleteError;
begin DataSource.DataSet.OnDeleteError := @ErrorDel;
F_EventOnDeleteError := DataSource.DataSet.OnDeleteError; end;
DataSource.DataSet.OnDeleteError := @ErrorDel; if DataSource.DataSet.OnPostError <> @ErrorPo then
end; begin
if DataSource.DataSet.OnPostError <> @ErrorPo then F_EventOnPostError := DataSource.DataSet.OnPostError;
begin DataSource.DataSet.OnPostError := @ErrorPo;
F_EventOnPostError := DataSource.DataSet.OnPostError; end;
DataSource.DataSet.OnPostError := @ErrorPo; CalcStatTotals;
end; if rdgFilter in OptionsRx then
CalcStatTotals; OnFilter(nil);
end
else
begin
if Assigned(DataSource) and Assigned(DataSource.DataSet) then
begin
DataSource.DataSet.OnFilterRecord := F_EventOnFilterRec;
F_EventOnFilterRec := nil;
DataSource.DataSet.BeforeDelete := F_EventOnBeforeDelete;
F_EventOnBeforeDelete := nil;
DataSource.DataSet.BeforePost := F_EventOnBeforePost;
F_EventOnBeforePost := nil;
DataSource.DataSet.OnDeleteError := F_EventOnDeleteError;
F_EventOnDeleteError := nil;
DataSource.DataSet.OnPostError := F_EventOnPostError;
F_EventOnPostError := nil;
if rdgFilter in OptionsRx then if rdgFilter in OptionsRx then
OnFilter(nil); OnFilter(nil);
end
else
begin
if Assigned(DataSource) and Assigned(DataSource.DataSet) then
begin
DataSource.DataSet.OnFilterRecord := F_EventOnFilterRec;
F_EventOnFilterRec := nil;
DataSource.DataSet.BeforeDelete := F_EventOnBeforeDelete;
F_EventOnBeforeDelete := nil;
DataSource.DataSet.BeforePost := F_EventOnBeforePost;
F_EventOnBeforePost := nil;
DataSource.DataSet.OnDeleteError := F_EventOnDeleteError;
F_EventOnDeleteError := nil;
DataSource.DataSet.OnPostError := F_EventOnPostError;
F_EventOnPostError := nil;
// OptionsRx := OptionsRx - [rdgFilter];
if rdgFilter in OptionsRx then
OnFilter(nil);
end;
F_LastFilter.Clear;
end; end;
F_LastFilter.Clear;
end; end;
end; end;