⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acepage.pas

📁 suite component ace report
💻 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 + -