From: Michael B. <be...@us...> - 2002-09-05 16:50:57
|
Update of /cvsroot/jvcl/jvcl/examples/JvPlugin/4ApplicationHook In directory usw-pr-cvs1:/tmp/cvs-serv15289/examples/JvPlugin/4ApplicationHook Added Files: ExceptionPlugin.dof ExceptionPlugInDemo.dof HookApplicationDemo.bpg ExceptionPlugInDemo.dpr ExceptionPluginU.dfm PlugInDemoU.pas PlugInDemoU.dfm ExceptionPluginU.pas ExceptionPlugin.dpr ExceptionPlugInDemo.res Log Message: --- NEW FILE: ExceptionPlugin.dof --- [Directories] UnitOutputDir=..\..\..\Dcu SearchPath=..\..\..\source;..\..\..\resources --- NEW FILE: ExceptionPlugInDemo.dof --- [Directories] UnitOutputDir=..\..\..\Dcu SearchPath=..\..\..\source;..\..\..\resources --- NEW FILE: HookApplicationDemo.bpg --- #------------------------------------------------------------------------------ VERSION = BWS.01 #------------------------------------------------------------------------------ !ifndef ROOT ROOT = $(MAKEDIR)\.. !endif #------------------------------------------------------------------------------ MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)\bin\dcc32.exe $** BRCC = $(ROOT)\bin\brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = ExceptionPlugin.dll ExceptionPlugInDemo.exe #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ ExceptionPlugInDemo.exe: ExceptionPlugInDemo.dpr $(DCC) ExceptionPlugin.dll: ExceptionPlugin.dpr $(DCC) --- NEW FILE: ExceptionPlugInDemo.dpr --- program ExceptionPlugInDemo; uses ShareMem, Forms, PlugInDemoU in 'PlugInDemoU.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. --- NEW FILE: ExceptionPluginU.dfm --- (This appears to be a binary file; contents omitted.) --- NEW FILE: PlugInDemoU.pas --- unit PlugInDemoU; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, JvPluginMan, StdCtrls, Buttons, Menus, ExtCtrls, ImgList, ComCtrls, JvComponent; type TForm1 = class(TForm) uilPluginManager: TJvPluginManager; MainMenu1: TMainMenu; Plugin1: TMenuItem; Panel1: TPanel; File1: TMenuItem; Exit1: TMenuItem; Help1: TMenuItem; About1: TMenuItem; GenerateExecption1: TMenuItem; StatusBar1: TStatusBar; ListBox1: TListBox; procedure Exit1Click(Sender: TObject); procedure About1Click(Sender: TObject); procedure GenerateExecption1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public NumButtons : integer; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Exit1Click(Sender: TObject); begin Close; end; procedure TForm1.About1Click(Sender: TObject); begin ShowMessage('A simple host application for demoing JEDI plug-ins.'#13#10#13#10'(c) 1999, Unlimited Intelligence Limited.'); end; procedure TForm1.GenerateExecption1Click(Sender: TObject); begin raise Exception.Create('This is an exception generated by the application'); end; procedure TForm1.FormShow(Sender: TObject); begin uilPluginManager.LoadPlugins; end; end. --- NEW FILE: PlugInDemoU.dfm --- object Form1: TForm1 Left = 332 Top = 165 Width = 414 Height = 284 Caption = 'Sample Plugin Host Application' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] Menu = MainMenu1 OldCreateOrder = False Position = poScreenCenter OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object Panel1: TPanel Left = 0 Top = 0 Width = 406 Height = 29 Align = alTop ParentShowHint = False ShowHint = True TabOrder = 0 end object StatusBar1: TStatusBar Left = 0 Top = 219 Width = 406 Height = 19 Panels = <> SimplePanel = True end object ListBox1: TListBox Left = 4 Top = 36 Width = 397 Height = 177 ItemHeight = 13 TabOrder = 2 end object uilPluginManager: TJvPluginManager Extension = 'dll' PluginKind = plgDLL Left = 44 Top = 44 end object MainMenu1: TMainMenu Left = 16 Top = 44 object File1: TMenuItem Caption = '&File' object Exit1: TMenuItem Caption = 'E&xit' OnClick = Exit1Click end end object Plugin1: TMenuItem Caption = '&Plug-in' object GenerateExecption1: TMenuItem Caption = 'Generate Exception' OnClick = GenerateExecption1Click end end object Help1: TMenuItem Caption = '&Help' object About1: TMenuItem Caption = '&About...' OnClick = About1Click end end end end --- NEW FILE: ExceptionPluginU.pas --- unit ExceptionPluginU; interface uses Windows, Messages, SysUtils, Classes, Dialogs, Forms, StdCtrls, ComCtrls, JvPlugin; type TuilPlugin1 = class(TJvPlugin) procedure uilPlugin1Initialize(Sender: TObject; var AllowLoad: Boolean); private procedure ExceptionHandler(Sender: TObject; E: Exception); public { Public declarations } end; function RegisterPlugin : TuilPlugin1; stdcall; implementation {$R *.DFM} // IMPORTANT NOTE: If you change the name of the Plugin container, // you must set the type below to the same type. (Delphi changes // the declaration, but not the procedure itself. Both the return // type and the type created must be the same as the declared type above. function RegisterPlugin : TuilPlugin1; begin Result := TuilPlugin1.Create(nil); end; procedure TuilPlugin1.ExceptionHandler(Sender: TObject; E: Exception); var Comp : TComponent; begin Comp := HostApplication.MainForm.FindComponent('Listbox1'); if Comp <> nil then TListBox(Comp).Items.Add(e.message); end; procedure TuilPlugin1.uilPlugin1Initialize(Sender: TObject; var AllowLoad: Boolean); var Comp : TComponent; begin HostApplication.OnException := ExceptionHandler; Comp := HostApplication.MainForm.FindComponent('StatusBar1'); if Comp <> nil then TStatusBar(Comp).SimpleText := 'Exception Handler installed.'; end; end. --- NEW FILE: ExceptionPlugin.dpr --- library ExceptionPlugin; uses ShareMem, ExceptionPluginU in 'ExceptionPluginU.pas' {uilPlugin1: TJvPlugin}; exports RegisterPlugin; begin end. --- NEW FILE: ExceptionPlugInDemo.res --- (This appears to be a binary file; contents omitted.) |