Componentes.Terceros.SDAC/internal/4.10.0.10/1/Source/Design/CRFrame.pas
2007-10-05 14:48:18 +00:00

116 lines
2.1 KiB
ObjectPascal

//////////////////////////////////////////////////
// DB Access Components
// Copyright © 1998-2005 Core Lab. All right reserved.
// Base Frame
//////////////////////////////////////////////////
{$IFNDEF CLR}
{$I Dac.inc}
unit CRFrame;
{$ENDIF}
interface
uses
{$IFDEF MSWINDOWS}
Controls, ComCtrls,
Forms,
{$ENDIF}
{$IFDEF LINUX}
QControls, QForms, QComCtrls,
{$ENDIF}
{$IFDEF DBTOOLS}
DBToolsClient,
{$ENDIF}
Classes, CREditor;
type
TCRFrameClass = class of TCRFrame;
TCRFrame = class(TFrame)
procedure FrameEnter(Sender: TObject);
protected
FModified: boolean;
FEditor: TCREditorForm;
FActivated: boolean; // To avoid duplicate call (for example, on TCRFrame.FrameExit and PageControl.OnChanging events)
function GetPage: TTabSheet;
procedure DoActivate; virtual;
procedure DoFinish; virtual;
public
function ActiveControl: TWinControl; virtual; // Return default control for this frame
procedure Activate;
procedure Finish;
procedure ReActivate;
property Page: TTabSheet read GetPage;
property Editor: TCREditorForm read FEditor write FEditor;
property Modified: boolean read FModified write FModified;
end;
implementation
{$IFDEF IDE}
{$R *.dfm}
{$ENDIF}
{$IFDEF MSWINDOWS}
{$R CRFrame.dfm}
{$ENDIF}
{$IFDEF LINUX}
{$R *.xfm}
{$ENDIF}
{ TCRFrame }
function TCRFrame.ActiveControl: TWinControl;
begin
Result := nil;
end;
function TCRFrame.GetPage: TTabSheet;
begin
Result := Parent as TTabSheet;
end;
procedure TCRFrame.DoActivate;
begin
end;
procedure TCRFrame.DoFinish;
begin
{$IFDEF DBTOOLS}
DBTools.CheckDBToolsChanges(Self);
{$ENDIF}
end;
procedure TCRFrame.Activate;
begin
if not FActivated then
ReActivate;
end;
procedure TCRFrame.Finish;
begin
if FActivated then
DoFinish;
FActivated := False;
end;
procedure TCRFrame.FrameEnter(Sender: TObject);
begin
Activate;
end;
procedure TCRFrame.ReActivate;
begin
DoActivate;
FActivated := True;
end;
end.