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第十次作业-房地产;学生成绩计算
    找回感觉之模拟房地产首付计算
    软件工程第四次作业—结对项目
    【作业】需要改进的用户体验二三则
    项目互测测试方式及报告
    [ASE]项目介绍及项目跟进——TANK BATTLE·INFINITE
    Hello World!
    [ASE]sprint3 总结 & sprint4计划
    [ASE][Daily Scrum]12.15
    [ASE][Daily Scrum]12.12
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2358378.html
Copyright © 2011-2022 走看看