zoukankan      html  css  js  c++  java
  • 插件之接口实现

    在插件中需要对接口中的方法进行具体的实现,主控程序才能调用并执行插件中的具体功能。

    unit uPlug;

    interface

    uses
      uInterface, Forms, Windows, Classes, SysUtils;

    type
      TModelService = class(TInterfacedObject, IModelInts)
      private
        function CheckFormExists(aClassName: pchar): Boolean;
      public
        procedure Cmd(aClassName: PChar);         // create visual plugin
        procedure Cmd2(aClassName: PChar);        // create non-visual plugin
      end;

    implementation

    { TModelService }

    function GetModelInts: IModelInts;
    begin
      result := TModelService.Create();
    end;

    exports
      GetModelInts;

    function TModelService.CheckFormExists(aClassName: pchar): Boolean;
    var
      i: Integer;
    begin
      result := False;
      for i := 0 to screen.FormCount - 1 do
      begin
        if UpperCase(screen.Forms[i].ClassName) = UpperCase(aClassName) then
        begin
          result := True;
          Screen.Forms[i].BringToFront;
          break;
        end;
      end;
    end;

    procedure TModelService.Cmd(aClassName: PChar);
    var
      f: TForm;
    begin
      if CheckFormExists(aClassName) then Exit;
      f := TFormClass(FindClass(aClassName)).Create(Application);
      f.Top := Application.MainForm.Height;
      f.Show;
    end;

    procedure TModelService.Cmd2(aClassName: PChar);
    var
      f: TForm;
    begin
     // if CheckFormExists(aClassName) then Exit;
      f := TFormClass(FindClass(aClassName)).Create(Application);
      f.Hide;
    end;

    end.

  • 相关阅读:
    蓝牙的AVDTP协议笔记
    蓝牙的AVCTP协议笔记
    hosts学习整理
    Win10报错0x800f0906
    Git Bash的妙用
    将xml文件由格式化变为压缩字符串
    try-with-resource机制的一个编译陷阱
    Git回滚代码暴力法
    IDEA中Git分支未push的变更集如何合并到另一个分支
    日期类型存储成字符串类型的格式问题
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2358378.html
Copyright © 2011-2022 走看看