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.

  • 相关阅读:
    phonon 播放视频
    ubuntu清理系统垃圾与备份
    QT中调用mplayer显示视频并加透明文字
    Qt中的QFileDialog类的几个示范代码
    Qt Phonon 例子
    Ubuntu 安装qt 和其他开发环境
    qhttp 下载
    QT 中文乱码 解决
    thrift oneway的问题
    leveldb 之 内存管理
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2358378.html
Copyright © 2011-2022 走看看