📄 acepage.pas
字号:
unit AcePage;
{ ----------------------------------------------------------------
Ace Reporter
Copyright 1995-1999 SCT Associates, Inc.
Written by Kevin Maher, Steve Tyrakowski
---------------------------------------------------------------- }
interface
{$I ace.inc}
{$S-}
uses
{$IFDEF WIN32} windows,
{$ELSE} wintypes, winprocs,
{$ENDIF}
forms, classes, graphics
,extctrls, dialogs, controls, sysutils
,stdctrls, messages, sctvar, sctctrl
,printers, commdlg, buttons, psetup
,sctrtf, sctutil, AceOut, aceview, acefile
{$ifdef AceBDE},db,aceds {$endif}
{$ifndef VCL130PLUS} , dbtables {$endif}
;
type
{$ifdef AceBDE}
{ TSctDSGuide }
TSctDSGuide = class(TControl)
private
FCreateVariables: Boolean;
FUpdateLevel: TSctLevel;
FDataLink: TDataLink;
protected
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure SetUpdateLevel(Level: TSctLevel); virtual;
procedure SetCreateVariables(Make: Boolean); virtual;
procedure SetParent(AParent: TWinControl); override;
procedure SetDataSource(Value: TDataSource); virtual;
function GetDataSource: TDataSource; virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property CreateVariables: Boolean read FCreateVariables write SetCreateVariables;
property UpdateLevel: TSctLevel read FUpdateLevel write SetUpdateLevel;
property DataSource: TDataSource read GetDataSource write SetDataSource;
end;
{$else}
TSctDSGuide = class(TControl)
end;
{$endif}
implementation
uses sctrep;
{$ifdef AceBDE}
type
TAceDataLink = class(TDataLink)
protected
procedure ActiveChanged; override;
public
DSG: TSctDataSourceGuide;
end;
procedure TAceDataLink.ActiveChanged;
begin
inherited ActiveChanged;
if DSG <> nil then
begin
if Not (csDestroying in TSctGroupPage(DSG.Parent).ComponentState) then
TSctGroupPage(DSG.Parent).Redraw;
end;
end;
{ TSctDSGuide }
constructor TSctDSGuide.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FCreateVariables := True;
FDataLink := TAceDataLink.Create;
TAceDataLink(FDataLink).DSG := TSctDataSourceGuide(self);
end;
destructor TSctDSGuide.Destroy;
begin
if FDataLink <> nil then FDataLink.Free;
inherited Destroy;
end;
procedure TSctDSGuide.SetDataSource(Value: TDataSource);
begin
FDataLink.DataSource := Value;
end;
function TSctDSGuide.GetDataSource: TDataSource;
begin
result := FDataLink.DataSource;
if result = nil then
begin
{ TSctGroupPage(Parent).UpdatePageManager;}
end;
end;
procedure TSctDSGuide.SetUpdateLevel(level: TSctLevel);
begin
if FUpdateLevel <> level Then
begin
FUpdatelevel := level;
if FUpdatelevel = nil Then
begin
if Not (csDestroying in TSctGroupPage(Parent).ComponentState) then
FUpdateLevel := TSctGroupPage(Parent).Detail.UpdateLevel;
end;
if Not (csDestroying in TSctGroupPage(Parent).ComponentState) Then
begin
TSctGroupPage(Parent).PostUpdateVarlist;
TSctGroupPage(Parent).VarChanged;
end;
end;
end;
procedure TSctDSGuide.SetCreateVariables(make: Boolean);
begin
if FCreateVariables <> make Then
begin
FCreateVariables := make;
{ TSctGroupPage(Parent).PostUpdateVarList;}
if Not (csDestroying in TSctGroupPage(Parent).ComponentState) then
TSctGroupPage(Parent).VarChanged;
end;
end;
procedure TSctDSGuide.SetParent(AParent: TWinControl);
begin
if AParent <> Parent then
begin
if AParent <> nil Then
begin
if AParent is TSctGrouppage Then
begin
TSctGrouppage(AParent).InsertDataSourceGuide(TSctDataSourceGuide(self));
inherited SetParent(AParent);
end else sysutils.Abort;
end else
begin
if Parent <> nil Then TSctGrouppage(Parent).RemoveDataSourceGuide(TSctDataSourceGuide(self));
inherited SetParent(AParent);
end;
end;
end;
procedure TSctDSGuide.Notification(AComponent: TComponent;
Operation: TOperation);
begin
Inherited Notification(AComponent, Operation);
if AComponent is TSctLevel Then
begin
if (Operation = opRemove) And (TSctLevel(AComponent) = UpdateLevel) Then
begin
UpdateLevel := nil;
end;
end;
end;
{$endif}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -