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.

  • 相关阅读:
    Java Web(八) MVC和三层架构
    Java Web(九) 用户管理系统
    Java Web(十一) 分页功能的实现
    hibernate(四) 双向多对多映射关系
    合并两个排序的链表
    反转链表
    链表中倒数第k个结点
    堆排序
    计算机网络常见面试题
    字节对齐原则
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2358378.html
Copyright © 2011-2022 走看看