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

📄 plugindemou.pas

📁 Jedi Code Library JCL JVCL 组件包 JCL+JVCL超过300个组件的非可视/可视大型组件包。
💻 PAS
字号:
unit PlugInDemoU;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  JvPluginMan, StdCtrls, Buttons, Menus, ExtCtrls, ImgList, JvComponent;

type
  TForm1 = class(TForm)
    uilPluginManager: TJvPluginManager;
    clbPlugins: TListBox;
    MainMenu1: TMainMenu;
    Plugin1: TMenuItem;
    lbStatus: TListBox;
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    labAuthor: TLabel;
    Label2: TLabel;
    labDescription: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    File1: TMenuItem;
    Exit1: TMenuItem;
    Help1: TMenuItem;
    About1: TMenuItem;
    SendMessagetoPlugins1: TMenuItem;
    N1: TMenuItem;
    Splitter1: TSplitter;
    procedure FormCreate(Sender: TObject);
    procedure uilPluginManagerBeforeLoad(Sender: TObject; Filename: String;
      var AllowLoad: Boolean);
    procedure uilPluginManagerBeforeLoading(Sender: TObject);
    procedure uilPluginManagerAfterLoading(Sender: TObject);
    procedure uilPluginManagerAfterLoad(Sender: TObject; Filename: String);
    procedure clbPluginsClick(Sender: TObject);
    procedure clbPluginsDblClick(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure uilPluginManagerNewCommand(Sender: TObject; ACaption, AHint,
      AData: String; ABitmap: TBitmap; AEvent: TNotifyEvent);
    procedure SendMessagetoPlugins1Click(Sender: TObject);
  private
    { Private declarations }
  public
    NumButtons : integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
   uilPluginManager.LoadPlugins;
end;

procedure TForm1.uilPluginManagerBeforeLoad(Sender: TObject;
  Filename: String; var AllowLoad: Boolean);
begin
   lbStatus.Items.Add('Loading Plug-in: ' + Filename);
end;

procedure TForm1.uilPluginManagerBeforeLoading(Sender: TObject);
begin
   lbStatus.Items.Add('Starting to load Plug-ins');
end;

procedure TForm1.uilPluginManagerAfterLoading(Sender: TObject);
begin
//   uilPluginManager.GetLoadedPlugins(clbPlugins.Items);
   lbStatus.Items.Add('Finished loading Plug-ins');
end;

procedure TForm1.uilPluginManagerAfterLoad(Sender: TObject;
  Filename: String);
begin
   uilPluginManager.GetLoadedPlugins(clbPlugins.Items);
   lbStatus.Items.Add('Finished loading Plug-in: ' + Filename);
end;

procedure TForm1.clbPluginsClick(Sender: TObject);
begin
   if clbPlugins.ItemIndex = -1 then Exit;
   labAuthor.Caption := uilPluginManager.Plugins[clbPlugins.ItemIndex].Author;
   labDescription.Caption := uilPluginManager.Plugins[clbPlugins.ItemIndex].Description;
end;

procedure TForm1.clbPluginsDblClick(Sender: TObject);
begin
   uilPluginManager.Plugins[clbPlugins.ItemIndex].Configure;
end;

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) 2002, Project JEDI.');
end;

procedure TForm1.uilPluginManagerNewCommand(Sender: TObject; ACaption,
  AHint, AData: String; ABitmap: TBitmap; AEvent: TNotifyEvent);
var
   Item : TMenuItem;
begin
   lbStatus.Items.Add('Adding command: ' + ACaption);
   Item := NewItem(ACaption, scNone, False, True, AEvent, 0, '');
   MainMenu1.Items[1].Add(Item);
   with TSpeedButton.Create(Panel1) do
   begin
      Top := 4;
      Left := 4+(NumButtons * Width);
      Parent := Panel1;
      Hint := AHint;
      if ABitmap <> nil then
         Glyph.Handle := ABitmap.Handle;
      try
         NumGlyphs := Glyph.Width div Glyph.Height;
      except
      end;
      OnClick := AEvent;
   end;    // with
   Inc(NumButtons);

end;

procedure TForm1.SendMessagetoPlugins1Click(Sender: TObject);
begin
   uilPluginManager.SendMessage(1000, InputBox('Enter message to send to plugin', 'Message', 'Your message here'));
end;

end.

⌨️ 快捷键说明

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