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

📄 dxjsaddtform.pas

📁 Well known and usefull component for delphi 7
💻 PAS
字号:
////////////////////////////////////////////////////////////////////////////
//    Component: TDXJSAddTForm
//       Author: Alexander Baranovsky (ab@virtlabor.donbass.com)
//               G.E. Ozz Nixon Jr. (staff@bpdx.com)
// ========================================================================
// Source Owner: DX, Inc. 2002, 2004
//    Copyright: All code is the property of DX, Inc. Licensed for
//               resell by Brain Patchwork DX (tm) and part of the
//               DX (r) product lines, which are (c) 1999-2002
//               DX, Inc. Source may not be distributed without
//               written permission from both Brain Patchwork DX,
//               and DX, Inc.
//      License: (Reminder), None of this code can be added to other
//               developer products without permission. This includes
//               but not limited to DCU's, DCP's, DLL's, OCX's, or
//               any other form of merging our technologies. All of
//               your products released to a public consumer be it
//               shareware, freeware, commercial, etc. must contain a
//               license notification somewhere visible in the
//               application.
// Code Version: (3rd Generation)
// ========================================================================
//  Description: Implement TForm support to instance of javascript that is
//  specified in the javascript property. Introduces the parent TForm, and
//  all associated constants for TForm, plus a couple of the public methods.
// ========================================================================
////////////////////////////////////////////////////////////////////////////
unit DXJSAddTForm;

interface

uses
  DXJavaScript,
  Forms,
  Classes;

type
  TDXJSAddTForm = class(TComponent)
  private
    fParent:TForm;
    fJavaScript:TDXJavaScript;
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
    Procedure RegisterWithJavaScript;
  published
    { Published declarations }
    Property JavaScript:TDXJavaScript read fJavaScript write fJavaScript;
  end;

//procedure Register;

implementation

Uses
   Controls,
   Graphics,
   SysUtils;

{
procedure Register;
begin
  RegisterComponents('BPDX JavaScript', [TDXJSAddTForm]);
end;
}
constructor TDXJSAddTForm.Create(AOwner:TComponent);
Begin
   inherited Create(AOwner);
   if (AOwner=Nil) or
      Not (AOwner is TForm) then Begin
      Raise Exception.Create('Parent must be TForm!');
      Exit;
   End;
   fParent:=AOwner as TForm;
End;

destructor TDXJSAddTForm.Destroy;
Begin
   inherited Destroy;
End;

///////////////////////////////////////////////////////////////////////////////
// DXJavaScript Call back hooks!
// ============================================================================
// methods
///////////////////////////////////////////////////////////////////////////////
function __BringToFront(Instance: TObject; const Parameters: array of Variant): Variant;
begin
  TForm(Instance).BringToFront;
end;

function __TextOut(Instance: TObject; const Parameters: array of Variant): Variant;
begin
  TCanvas(Instance).TextOut(Parameters[0], Parameters[1], Parameters[2]);
end;

function __TForm_Hide(Instance: TObject; const Parameters: array of Variant): Variant;
begin
  TForm(Instance).Hide;
end;

///////////////////////////////////////////////////////////////////////////////
// non-published property
///////////////////////////////////////////////////////////////////////////////
function __TForm_GetCanvas(Instance: TObject; const Parameters: array of Variant): Variant;
begin
  result := TDXJavaScript.DelphiObjectToVariant(TForm(Instance).Canvas);
end;

function __TForm_GetFont(Instance: TObject; const Parameters: array of Variant): Variant;
begin
  result := TDXJavaScript.DelphiObjectToVariant(TForm(Instance).Font);
end;

///////////////////////////////////////////////////////////////////////////////
// assign these hooks to DXJavaScript
///////////////////////////////////////////////////////////////////////////////
Procedure TDXJSAddTForm.RegisterWithJavaScript;
Begin
   if Assigned(fJavaScript) then Begin
// Constants (for some of the Properties)
      With fJavaScript do Begin
      // .TWindowState
         AddConstant('wsNormal',0);
         AddConstant('wsMinimized',1);
         AddConstant('wsMaximized',2);
      // .TFormBorderStyle
         AddConstant('bsNone',0);
         AddConstant('bsSingle',1);
         AddConstant('bsSizeable',2);
         AddConstant('bsDialog',3);
         AddConstant('bsToolWindow',4);
         AddConstant('bsSizeToolWin',5);
      // Set of TBorderIcon as TBorderIcons
         AddConstant('biSystemMenu',0);
         AddConstant('biMinimize',1);
         AddConstant('biMaximize',2);
         AddConstant('biHelp',3);
      // .TScrollBarKind
         AddConstant('sbHorizontal',0);
         AddConstant('sbVertical',1);
      // .TScrollBarStyle
         AddConstant('ssRegular',0);
         AddConstant('ssFlat',1);
         AddConstant('ssHotTrack',2);
      // .TFormStyle
         AddConstant('fsNormal',0);
         AddConstant('fsMDIChild',1);
         AddConstant('fsMDIForm',2);
         AddConstant('fsStayOnTop',3);
      // .TPosition
         AddConstant('poDesigned',0);
         AddConstant('poDefault',1);
         AddConstant('poDefaultPosOnly',2);
         AddConstant('poDefaultSizeOnly',3);
         AddConstant('poScreenCenter',4);
         AddConstant('poDesktopCenter',5);
         AddConstant('poMainFormCenter',6);
         AddConstant('poOwnerFormCenter',7);
      // .TDefaultMonitor
         AddConstant('dmDesktop',0);
         AddConstant('dmPrimary',1);
         AddConstant('dmMainForm',2);
         AddConstant('dmActiveForm',3);
      // .TPrintScale
         AddConstant('poNone',0);
         AddConstant('poProportional',1);
         AddConstant('poPrintToFit',2);
      // .TShowAction
         AddConstant('saIgnore',0);
         AddConstant('saRestore',1);
         AddConstant('saMinimize',2);
         AddConstant('saMaximize',3);
      // .TTileMode
         AddConstant('tbHorizontal',0);
         AddConstant('tbVertical',1);
      // .TCloseAction
         AddConstant('caNone',0);
         AddConstant('caHide',1);
         AddConstant('caFree',2);
         AddConstant('caMinimize',3);
// Add methods
         AddMethod(TControl, 'BringToFront', @__BringToFront);
         AddMethod(TCanvas, 'TextOut', @__TextOut);
//         AddMethod(TForm, 'Hide', @__TForm_Hide);
// Add non-published property
         AddProperty(TForm, 'Canvas', @__TForm_GetCanvas, nil);
         AddObject(fParent.Name,fParent);
      End;
   End;
End;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -