圣诞快乐!一个小问题就大送分!(100分)

  • 主题发起人 主题发起人 Oldtiger
  • 开始时间 开始时间
O

Oldtiger

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在ActiveX Form中声明一个事件?
写出一个完整的程序(基本上D6都生成了!如下),这些分统统送了!
library ActiveFormProj1;
uses
ComServ,
ActiveFormProj1_TLB in 'ActiveFormProj1_TLB.pas',
ActiveFormImpl1 in 'ActiveFormImpl1.pas' {ActiveFormX: TActiveForm} {ActiveFormX: CoClass};
{$E ocx}
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
{$R *.TLB}
{$R *.RES}
begin
end.
-------------------------------------------------------------
unit ActiveFormProj1_TLB;
// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //
// PASTLWTR : $Revision: 1.130 $
// File generated on 2001.12.23 19:58:49 from Type Library described below.
// ************************************************************************ //
// Type Lib: C:/Program Files/Borland/Delphi6/Projects/ActiveFormProj1.tlb (1)
// LIBID: {4BE4CF38-0387-4BE8-890E-2BA330E82F98}
// LCID: 0
// Helpfile:
// DepndLst:
// (1) v2.0 stdole, (C:/WINNT/System32/stdole2.tlb)
// (2) v4.0 StdVCL, (C:/WINNT/System32/stdvcl40.dll)
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
interface
uses ActiveX, Classes, Graphics, OleCtrls, StdVCL, Variants, Windows;


// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
ActiveFormProj1MajorVersion = 1;
ActiveFormProj1MinorVersion = 0;
LIBID_ActiveFormProj1: TGUID = '{4BE4CF38-0387-4BE8-890E-2BA330E82F98}';
IID_IActiveFormX: TGUID = '{19A2D19F-4D77-442C-B3F8-D753A1592FB2}';
DIID_IActiveFormXEvents: TGUID = '{46DCF1AD-DA1A-431A-AA12-FBFB94F80B2F}';
CLASS_ActiveFormX: TGUID = '{7C2AA12F-6D03-48EA-A285-F5244153B86F}';
// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum TxActiveFormBorderStyle
type
TxActiveFormBorderStyle = TOleEnum;
const
afbNone = $00000000;
afbSingle = $00000001;
afbSunken = $00000002;
afbRaised = $00000003;
// Constants for enum TxPrintScale
type
TxPrintScale = TOleEnum;
const
poNone = $00000000;
poProportional = $00000001;
poPrintToFit = $00000002;
// Constants for enum TxMouseButton
type
TxMouseButton = TOleEnum;
const
mbLeft = $00000000;
mbRight = $00000001;
mbMiddle = $00000002;
// Constants for enum TxHelpType
type
TxHelpType = TOleEnum;
const
htKeyword = $00000000;
htContext = $00000001;
type
// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
IActiveFormX = interface;
IActiveFormXDisp = dispinterface;
IActiveFormXEvents = dispinterface;
// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
ActiveFormX = IActiveFormX;

// *********************************************************************//
// Declaration of structures, unions and aliases.
// *********************************************************************//
PPUserType1 = ^IFontDisp;
{*}

// *********************************************************************//
// Interface: IActiveFormX
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {19A2D19F-4D77-442C-B3F8-D753A1592FB2}
// *********************************************************************//
IActiveFormX = interface(IDispatch)
['{19A2D19F-4D77-442C-B3F8-D753A1592FB2}']
function Get_Visible: WordBool;
safecall;
procedure Set_Visible(Value: WordBool);
safecall;
function Get_AutoScroll: WordBool;
safecall;
procedure Set_AutoScroll(Value: WordBool);
safecall;
function Get_AutoSize: WordBool;
safecall;
procedure Set_AutoSize(Value: WordBool);
safecall;
function Get_AxBorderStyle: TxActiveFormBorderStyle;
safecall;
procedure Set_AxBorderStyle(Value: TxActiveFormBorderStyle);
safecall;
function Get_Caption: WideString;
safecall;
procedure Set_Caption(const Value: WideString);
safecall;
function Get_Color: OLE_COLOR;
safecall;
procedure Set_Color(Value: OLE_COLOR);
safecall;
function Get_Font: IFontDisp;
safecall;
procedure Set_Font(const Value: IFontDisp);
safecall;
procedure _Set_Font(var Value: IFontDisp);
safecall;
function Get_KeyPreview: WordBool;
safecall;
procedure Set_KeyPreview(Value: WordBool);
safecall;
function Get_PixelsPerInch: Integer;
safecall;
procedure Set_PixelsPerInch(Value: Integer);
safecall;
function Get_PrintScale: TxPrintScale;
safecall;
procedure Set_PrintScale(Value: TxPrintScale);
safecall;
function Get_Scaled: WordBool;
safecall;
procedure Set_Scaled(Value: WordBool);
safecall;
function Get_Active: WordBool;
safecall;
function Get_DropTarget: WordBool;
safecall;
procedure Set_DropTarget(Value: WordBool);
safecall;
function Get_HelpFile: WideString;
safecall;
procedure Set_HelpFile(const Value: WideString);
safecall;
function Get_DoubleBuffered: WordBool;
safecall;
procedure Set_DoubleBuffered(Value: WordBool);
safecall;
function Get_AlignDisabled: WordBool;
safecall;
function Get_VisibleDockClientCount: Integer;
safecall;
function Get_Enabled: WordBool;
safecall;
procedure Set_Enabled(Value: WordBool);
safecall;
function Get_Cursor: Smallint;
safecall;
procedure Set_Cursor(Value: Smallint);
safecall;
function Get_HelpType: TxHelpType;
safecall;
procedure Set_HelpType(Value: TxHelpType);
safecall;
function Get_HelpKeyword: WideString;
safecall;
procedure Set_HelpKeyword(const Value: WideString);
safecall;
property Visible: WordBool read Get_Visible write Set_Visible;
property AutoScroll: WordBool read Get_AutoScroll write Set_AutoScroll;
property AutoSize: WordBool read Get_AutoSize write Set_AutoSize;
property AxBorderStyle: TxActiveFormBorderStyle read Get_AxBorderStyle write Set_AxBorderStyle;
property Caption: WideString read Get_Caption write Set_Caption;
property Color: OLE_COLOR read Get_Color write Set_Color;
property Font: IFontDisp read Get_Font write Set_Font;
property KeyPreview: WordBool read Get_KeyPreview write Set_KeyPreview;
property PixelsPerInch: Integer read Get_PixelsPerInch write Set_PixelsPerInch;
property PrintScale: TxPrintScale read Get_PrintScale write Set_PrintScale;
property Scaled: WordBool read Get_Scaled write Set_Scaled;
property Active: WordBool read Get_Active;
property DropTarget: WordBool read Get_DropTarget write Set_DropTarget;
property HelpFile: WideString read Get_HelpFile write Set_HelpFile;
property do
ubleBuffered: WordBool read Get_DoubleBuffered write Set_DoubleBuffered;
property AlignDisabled: WordBool read Get_AlignDisabled;
property VisibleDockClientCount: Integer read Get_VisibleDockClientCount;
property Enabled: WordBool read Get_Enabled write Set_Enabled;
property Cursor: Smallint read Get_Cursor write Set_Cursor;
property HelpType: TxHelpType read Get_HelpType write Set_HelpType;
property HelpKeyword: WideString read Get_HelpKeyword write Set_HelpKeyword;
end;

// *********************************************************************//
// DispIntf: IActiveFormXDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {19A2D19F-4D77-442C-B3F8-D753A1592FB2}
// *********************************************************************//
IActiveFormXDisp = dispinterface
['{19A2D19F-4D77-442C-B3F8-D753A1592FB2}']
property Visible: WordBool dispid 1;
property AutoScroll: WordBool dispid 2;
property AutoSize: WordBool dispid 3;
property AxBorderStyle: TxActiveFormBorderStyle dispid 4;
property Caption: WideString dispid -518;
property Color: OLE_COLOR dispid -501;
property Font: IFontDisp dispid -512;
property KeyPreview: WordBool dispid 5;
property PixelsPerInch: Integer dispid 6;
property PrintScale: TxPrintScale dispid 7;
property Scaled: WordBool dispid 8;
property Active: WordBool readonly dispid 9;
property DropTarget: WordBool dispid 10;
property HelpFile: WideString dispid 11;
property do
ubleBuffered: WordBool dispid 12;
property AlignDisabled: WordBool readonly dispid 13;
property VisibleDockClientCount: Integer readonly dispid 14;
property Enabled: WordBool dispid -514;
property Cursor: Smallint dispid 15;
property HelpType: TxHelpType dispid 16;
property HelpKeyword: WideString dispid 17;
end;

// *********************************************************************//
// DispIntf: IActiveFormXEvents
// Flags: (0)
// GUID: {46DCF1AD-DA1A-431A-AA12-FBFB94F80B2F}
// *********************************************************************//
IActiveFormXEvents = dispinterface
['{46DCF1AD-DA1A-431A-AA12-FBFB94F80B2F}']
procedure OnActivate;
dispid 1;
procedure OnClick;
dispid 2;
procedure OnCreate;
dispid 3;
procedure OnDblClick;
dispid 5;
procedure OnDestroy;
dispid 6;
procedure OnDeactivate;
dispid 7;
procedure OnKeyPress(var Key: Smallint);
dispid 11;
procedure OnPaint;
dispid 16;
end;

// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TActiveFormX
// Help String : ActiveFormX Control
// Default Interface: IActiveFormX
// Def. Intf. DISP? : No
// Event Interface: IActiveFormXEvents
// TypeFlags : (38) CanCreate Licensed Control
// *********************************************************************//
TActiveFormXOnKeyPress = procedure(Sender: TObject;
var Key: Smallint) of object;
TActiveFormX = class(TOleControl)
private
FOnActivate: TNotifyEvent;
FOnClick: TNotifyEvent;
FOnCreate: TNotifyEvent;
FOnDblClick: TNotifyEvent;
FOnDestroy: TNotifyEvent;
FOnDeactivate: TNotifyEvent;
FOnKeyPress: TActiveFormXOnKeyPress;
FOnPaint: TNotifyEvent;
FIntf: IActiveFormX;
function GetControlInterface: IActiveFormX;
protected
procedure CreateControl;
procedure InitControlData;
override;
public
property ControlInterface: IActiveFormX read GetControlInterface;
property DefaultInterface: IActiveFormX read GetControlInterface;
property Visible: WordBool index 1 read GetWordBoolProp write SetWordBoolProp;
property Active: WordBool index 9 read GetWordBoolProp;
property DropTarget: WordBool index 10 read GetWordBoolProp write SetWordBoolProp;
property HelpFile: WideString index 11 read GetWideStringProp write SetWideStringProp;
property do
ubleBuffered: WordBool index 12 read GetWordBoolProp write SetWordBoolProp;
property AlignDisabled: WordBool index 13 read GetWordBoolProp;
property VisibleDockClientCount: Integer index 14 read GetIntegerProp;
property Enabled: WordBool index -514 read GetWordBoolProp write SetWordBoolProp;
published
property AutoScroll: WordBool index 2 read GetWordBoolProp write SetWordBoolProp stored False;
property AutoSize: WordBool index 3 read GetWordBoolProp write SetWordBoolProp stored False;
property AxBorderStyle: TOleEnum index 4 read GetTOleEnumProp write SetTOleEnumProp stored False;
property Caption: WideString index -518 read GetWideStringProp write SetWideStringProp stored False;
property Color: TColor index -501 read GetTColorProp write SetTColorProp stored False;
property Font: TFont index -512 read GetTFontProp write _SetTFontProp stored False;
property KeyPreview: WordBool index 5 read GetWordBoolProp write SetWordBoolProp stored False;
property PixelsPerInch: Integer index 6 read GetIntegerProp write SetIntegerProp stored False;
property PrintScale: TOleEnum index 7 read GetTOleEnumProp write SetTOleEnumProp stored False;
property Scaled: WordBool index 8 read GetWordBoolProp write SetWordBoolProp stored False;
property Cursor: Smallint index 15 read GetSmallintProp write SetSmallintProp stored False;
property HelpType: TOleEnum index 16 read GetTOleEnumProp write SetTOleEnumProp stored False;
property HelpKeyword: WideString index 17 read GetWideStringProp write SetWideStringProp stored False;
property OnActivate: TNotifyEvent read FOnActivate write FOnActivate;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
property OnCreate: TNotifyEvent read FOnCreate write FOnCreate;
property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
property OnDestroy: TNotifyEvent read FOnDestroy write FOnDestroy;
property OnDeactivate: TNotifyEvent read FOnDeactivate write FOnDeactivate;
property OnKeyPress: TActiveFormXOnKeyPress read FOnKeyPress write FOnKeyPress;
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
end;

procedure Register;
resourcestring
dtlServerPage = 'Servers';
implementation
uses ComObj;
procedure TActiveFormX.InitControlData;
const
CEventDispIDs: array [0..7] of DWORD = (
$00000001, $00000002, $00000003, $00000005, $00000006, $00000007,
$0000000B, $00000010);
CTFontIDs: array [0..0] of DWORD = (
$FFFFFE00);
CControlData: TControlData2 = (
ClassID: '{7C2AA12F-6D03-48EA-A285-F5244153B86F}';
EventIID: '{46DCF1AD-DA1A-431A-AA12-FBFB94F80B2F}';
EventCount: 8;
EventDispIDs: @CEventDispIDs;
LicenseKey: nil (*HR:$80040154*);
Flags: $0000001D;
Version: 401;
FontCount: 1;
FontIDs: @CTFontIDs);
begin
ControlData := @CControlData;
TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnActivate) - Cardinal(Self);
end;

procedure TActiveFormX.CreateControl;
procedure do
Create;
begin
FIntf := IUnknown(OleObject) as IActiveFormX;
end;

begin
if FIntf = nil then
do
Create;
end;

function TActiveFormX.GetControlInterface: IActiveFormX;
begin
CreateControl;
Result := FIntf;
end;

procedure Register;
begin
RegisterComponents('ActiveX',[TActiveFormX]);
end;

end.
--------------------------------------------------------------------
unit ActiveFormImpl1;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActiveX, AxCtrls, ActiveFormProj1_TLB, StdVcl;
type
TActiveFormX = class(TActiveForm, IActiveFormX)
private
{ Private declarations }
FEvents: IActiveFormXEvents;
procedure ActivateEvent(Sender: TObject);
procedure ClickEvent(Sender: TObject);
procedure CreateEvent(Sender: TObject);
procedure DblClickEvent(Sender: TObject);
procedure DeactivateEvent(Sender: TObject);
procedure DestroyEvent(Sender: TObject);
procedure KeyPressEvent(Sender: TObject;
var Key: Char);
procedure PaintEvent(Sender: TObject);
protected
{ Protected declarations }
procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage);
override;
procedure EventSinkChanged(const EventSink: IUnknown);
override;
function Get_Active: WordBool;
safecall;
function Get_AlignDisabled: WordBool;
safecall;
function Get_AutoScroll: WordBool;
safecall;
function Get_AutoSize: WordBool;
safecall;
function Get_AxBorderStyle: TxActiveFormBorderStyle;
safecall;
function Get_Caption: WideString;
safecall;
function Get_Color: OLE_COLOR;
safecall;
function Get_Cursor: Smallint;
safecall;
function Get_DoubleBuffered: WordBool;
safecall;
function Get_DropTarget: WordBool;
safecall;
function Get_Enabled: WordBool;
safecall;
function Get_Font: IFontDisp;
safecall;
function Get_HelpFile: WideString;
safecall;
function Get_HelpKeyword: WideString;
safecall;
function Get_HelpType: TxHelpType;
safecall;
function Get_KeyPreview: WordBool;
safecall;
function Get_PixelsPerInch: Integer;
safecall;
function Get_PrintScale: TxPrintScale;
safecall;
function Get_Scaled: WordBool;
safecall;
function Get_Visible: WordBool;
safecall;
function Get_VisibleDockClientCount: Integer;
safecall;
procedure _Set_Font(var Value: IFontDisp);
safecall;
procedure Set_AutoScroll(Value: WordBool);
safecall;
procedure Set_AutoSize(Value: WordBool);
safecall;
procedure Set_AxBorderStyle(Value: TxActiveFormBorderStyle);
safecall;
procedure Set_Caption(const Value: WideString);
safecall;
procedure Set_Color(Value: OLE_COLOR);
safecall;
procedure Set_Cursor(Value: Smallint);
safecall;
procedure Set_DoubleBuffered(Value: WordBool);
safecall;
procedure Set_DropTarget(Value: WordBool);
safecall;
procedure Set_Enabled(Value: WordBool);
safecall;
procedure Set_Font(const Value: IFontDisp);
safecall;
procedure Set_HelpFile(const Value: WideString);
safecall;
procedure Set_HelpKeyword(const Value: WideString);
safecall;
procedure Set_HelpType(Value: TxHelpType);
safecall;
procedure Set_KeyPreview(Value: WordBool);
safecall;
procedure Set_PixelsPerInch(Value: Integer);
safecall;
procedure Set_PrintScale(Value: TxPrintScale);
safecall;
procedure Set_Scaled(Value: WordBool);
safecall;
procedure Set_Visible(Value: WordBool);
safecall;
public
{ Public declarations }
procedure Initialize;
override;
end;

implementation
uses ComObj, ComServ;
{$R *.DFM}
{ TActiveFormX }
procedure TActiveFormX.DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage);
begin
{ Define property pages here. Property pages are defined by calling
DefinePropertyPage with the class id of the page. For example,
DefinePropertyPage(Class_ActiveFormXPage);
}
end;

procedure TActiveFormX.EventSinkChanged(const EventSink: IUnknown);
begin
FEvents := EventSink as IActiveFormXEvents;
inherited EventSinkChanged(EventSink);
end;

procedure TActiveFormX.Initialize;
begin
inherited Initialize;
OnActivate := ActivateEvent;
OnClick := ClickEvent;
OnCreate := CreateEvent;
OnDblClick := DblClickEvent;
OnDeactivate := DeactivateEvent;
OnDestroy := DestroyEvent;
OnKeyPress := KeyPressEvent;
OnPaint := PaintEvent;
end;

function TActiveFormX.Get_Active: WordBool;
begin
Result := Active;
end;

function TActiveFormX.Get_AlignDisabled: WordBool;
begin
Result := AlignDisabled;
end;

function TActiveFormX.Get_AutoScroll: WordBool;
begin
Result := AutoScroll;
end;

function TActiveFormX.Get_AutoSize: WordBool;
begin
Result := AutoSize;
end;

function TActiveFormX.Get_AxBorderStyle: TxActiveFormBorderStyle;
begin
Result := Ord(AxBorderStyle);
end;

function TActiveFormX.Get_Caption: WideString;
begin
Result := WideString(Caption);
end;

function TActiveFormX.Get_Color: OLE_COLOR;
begin
Result := OLE_COLOR(Color);
end;

function TActiveFormX.Get_Cursor: Smallint;
begin
Result := Smallint(Cursor);
end;

function TActiveFormX.Get_DoubleBuffered: WordBool;
begin
Result := do
ubleBuffered;
end;

function TActiveFormX.Get_DropTarget: WordBool;
begin
Result := DropTarget;
end;

function TActiveFormX.Get_Enabled: WordBool;
begin
Result := Enabled;
end;

function TActiveFormX.Get_Font: IFontDisp;
begin
GetOleFont(Font, Result);
end;

function TActiveFormX.Get_HelpFile: WideString;
begin
Result := WideString(HelpFile);
end;

function TActiveFormX.Get_HelpKeyword: WideString;
begin
Result := WideString(HelpKeyword);
end;

function TActiveFormX.Get_HelpType: TxHelpType;
begin
Result := Ord(HelpType);
end;

function TActiveFormX.Get_KeyPreview: WordBool;
begin
Result := KeyPreview;
end;

function TActiveFormX.Get_PixelsPerInch: Integer;
begin
Result := PixelsPerInch;
end;

function TActiveFormX.Get_PrintScale: TxPrintScale;
begin
Result := Ord(PrintScale);
end;

function TActiveFormX.Get_Scaled: WordBool;
begin
Result := Scaled;
end;

function TActiveFormX.Get_Visible: WordBool;
begin
Result := Visible;
end;

function TActiveFormX.Get_VisibleDockClientCount: Integer;
begin
Result := VisibleDockClientCount;
end;

procedure TActiveFormX._Set_Font(var Value: IFontDisp);
begin
SetOleFont(Font, Value);
end;

procedure TActiveFormX.ActivateEvent(Sender: TObject);
begin
if FEvents <> nil then
FEvents.OnActivate;
end;

procedure TActiveFormX.ClickEvent(Sender: TObject);
begin
if FEvents <> nil then
FEvents.OnClick;
end;

procedure TActiveFormX.CreateEvent(Sender: TObject);
begin
if FEvents <> nil then
FEvents.OnCreate;
end;

procedure TActiveFormX.DblClickEvent(Sender: TObject);
begin
if FEvents <> nil then
FEvents.OnDblClick;
end;

procedure TActiveFormX.DeactivateEvent(Sender: TObject);
begin
if FEvents <> nil then
FEvents.OnDeactivate;
end;

procedure TActiveFormX.DestroyEvent(Sender: TObject);
begin
if FEvents <> nil then
FEvents.OnDestroy;
end;

procedure TActiveFormX.KeyPressEvent(Sender: TObject;
var Key: Char);
var
TempKey: Smallint;
begin
TempKey := Smallint(Key);
if FEvents <> nil then
FEvents.OnKeyPress(TempKey);
Key := Char(TempKey);
end;

procedure TActiveFormX.PaintEvent(Sender: TObject);
begin
if FEvents <> nil then
FEvents.OnPaint;
end;

procedure TActiveFormX.Set_AutoScroll(Value: WordBool);
begin
AutoScroll := Value;
end;

procedure TActiveFormX.Set_AutoSize(Value: WordBool);
begin
AutoSize := Value;
end;

procedure TActiveFormX.Set_AxBorderStyle(Value: TxActiveFormBorderStyle);
begin
AxBorderStyle := TActiveFormBorderStyle(Value);
end;

procedure TActiveFormX.Set_Caption(const Value: WideString);
begin
Caption := TCaption(Value);
end;

procedure TActiveFormX.Set_Color(Value: OLE_COLOR);
begin
Color := TColor(Value);
end;

procedure TActiveFormX.Set_Cursor(Value: Smallint);
begin
Cursor := TCursor(Value);
end;

procedure TActiveFormX.Set_DoubleBuffered(Value: WordBool);
begin
do
ubleBuffered := Value;
end;

procedure TActiveFormX.Set_DropTarget(Value: WordBool);
begin
DropTarget := Value;
end;

procedure TActiveFormX.Set_Enabled(Value: WordBool);
begin
Enabled := Value;
end;

procedure TActiveFormX.Set_Font(const Value: IFontDisp);
begin
SetOleFont(Font, Value);
end;

procedure TActiveFormX.Set_HelpFile(const Value: WideString);
begin
HelpFile := String(Value);
end;

procedure TActiveFormX.Set_HelpKeyword(const Value: WideString);
begin
HelpKeyword := String(Value);
end;

procedure TActiveFormX.Set_HelpType(Value: TxHelpType);
begin
HelpType := THelpType(Value);
end;

procedure TActiveFormX.Set_KeyPreview(Value: WordBool);
begin
KeyPreview := Value;
end;

procedure TActiveFormX.Set_PixelsPerInch(Value: Integer);
begin
PixelsPerInch := Value;
end;

procedure TActiveFormX.Set_PrintScale(Value: TxPrintScale);
begin
PrintScale := TPrintScale(Value);
end;

procedure TActiveFormX.Set_Scaled(Value: WordBool);
begin
Scaled := Value;
end;

procedure TActiveFormX.Set_Visible(Value: WordBool);
begin
Visible := Value;
end;

initialization
TActiveFormFactory.Create(
ComServer,
TActiveFormControl,
TActiveFormX,
Class_ActiveFormX,
1,
'{DD233AB2-F1C6-4A3E-8202-85D1341A7C54}',
OLEMISC_SIMPLEFRAME or OLEMISC_ACTSLIKELABEL,
tmApartment);
end.
 
FOnCreate: TNotifyEvent
这本身就是声明了一个onCreate事件
 
事实上,我的问题与coolbaby的是一样的,见
http://www.delphibbs.com/delphibbs/dispq.asp?lid=479985
但那里没有最后答案!
 
对,我问过的
:)
 
现在我参照OnClick在unit ActiveFormImpl1中添加了
procedure TActiveFormX.ABCEvent ;
begin
if FEvents <> nil then
FEvents.OnABC;
end;
就可以了;
但是OnClick必须在Initialize中初始化,如下
procedure TActiveFormX.Initialize;
begin
inherited Initialize;
OnClick := ClickEvent;
end;
但为什么我的OnABC就不要初始化呢?直接加上
OnABC := ABCEvent;
会报告OnABC未定义的
 
多人接受答案了。
 
后退
顶部