58 lines
1.1 KiB
ObjectPascal
58 lines
1.1 KiB
ObjectPascal
unit uViewBase;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize;
|
|
|
|
type
|
|
IViewBase = interface(ICustomView)
|
|
['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}']
|
|
procedure Refresh;
|
|
end;
|
|
|
|
TfrViewBase = class(TCustomView, IViewBase)
|
|
protected
|
|
procedure SetReadOnly(Value: Boolean); override;
|
|
|
|
public
|
|
procedure Refresh; virtual;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
uses
|
|
cxDBEdit, cxControls, dxLayoutControl;
|
|
|
|
{ TfrViewBase }
|
|
|
|
procedure TfrViewBase.Refresh;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TfrViewBase.SetReadOnly(Value: Boolean);
|
|
var
|
|
i: integer;
|
|
begin
|
|
inherited;
|
|
if (csLoading in Self.ComponentState) then
|
|
Exit;
|
|
|
|
for i:=0 to Self.ComponentCount-1 do
|
|
begin
|
|
if (Self.Components[i] is TfrViewBase) then
|
|
(Self.Components[i] as TfrViewBase).ReadOnly := Self.ReadOnly;
|
|
|
|
if (Self.Components[i] is TcxControl)
|
|
and (not (Self.Components[i] Is TdxLayoutControl)) then
|
|
(Self.Components[i] as TcxControl).Enabled := not Self.ReadOnly;
|
|
end;
|
|
end;
|
|
|
|
end.
|