用TActionManager、TActionMainMenuBar和TActionToolBar组合做成的菜单和快捷按钮栏,发现不能通过设置Caption属性为“-”来添加分隔符,请问,在这种情况下要如何才能添加分隔符。
在dll文件中一般都是往外提供函数调用的,请问是否可以提供一个类给外部使用,如果可以的话,应该如何书写?

解决方案 »

  1.   

    Function WinExecExW(cmd,workdir:pchar;visiable:integer = SW_SHOWNORMAL):DWORD;
    var
     StartupInfo:TStartupInfo;
     ProcessInfo:TProcessInformation;
    begin
     FillChar(StartupInfo,SizeOf(StartupInfo),#0);
     StartupInfo.cb:=SizeOf(StartupInfo);
     StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
     StartupInfo.wShowWindow:=visiable;
     if not CreateProcess(nil,cmd,nil,nil,false,Create_new_console or Normal_priority_class,nil,nil,StartupInfo,ProcessInfo) then
       result:=0
     else
     begin
       waitforsingleobject(processinfo.hProcess,INFINITE);
       GetExitCodeProcess(ProcessInfo.hProcess,Result);
     end;
    end;
      

  2.   

    可以导出类,另外编写一个头文件,共dll和调用的里面用,

    {uses
      Forms, DB, DBTables, DBGrids, ComCtrls}
      
    type
      TMyControl = class (TControl);
      
      TMyClass = class(TObject)
    {$IFDEF MyMethodDll}
      private
        function GetPYIndexChar(hzChar: string): Char; //得到汉字的首字母,由后面的检索函数调用
    {$ENDIF}
      public
        function GetWinTempPath: String;
          virtual; stdcall; {$IFNDEF MyMethodDll} abstract; {$ENDIF}  //得到windows系统的临时目录
        function GetWinSystemPath: String;  //得到Windows系统的路径
          virtual; stdcall; {$IFNDEF MyMethodDll} abstract; {$ENDIF}
        function GetTemporaryFileName(Const AName: String): String; //得到以AName开头的临时文件名 AName一般为3个字符
          virtual; stdcall; {$IFNDEF MyMethodDll} abstract; {$ENDIF}
    end;
      

  3.   

    楼上,你这里只是定义了类,要怎么样说明这些类能被外部使用呢?函数是放在exports关键字后的,类也是把类名放在这个关键字后面吗?