小编Del*_*man的帖子

所有mdi表格关闭时的事件

伙计们,如果有人知道在所有MDI表格关闭时我可以截获的任何事件或方法,我想.

例:

我想在我的主窗体中实现一个事件,当我关闭所有MDI表单时,触发了这样的事件.

如果有人可以帮忙,感激不尽.

forms delphi events mdi

7
推荐指数
1
解决办法
2091
查看次数

TMainMenu构建菜单项动态

在我的系统上,主菜单是完全动态的,是根据数据库中的数据构建的.

我有一个特定的情况,在显示之前需要组装一些菜单项.

我们假设我的菜单包含以下主要项目:

文件 - 客户 - 报告 - 关于

单击" 报告"菜单项时,必须在项目显示之前组合这些项目.

我对TMainMenu,TMenu和TMenuItem类中的代码进行了分析.不幸的是,我还没有找到解决问题的简单方法.

在显示之前是否存在创建这些项目的方法?

delphi menu menuitem

2
推荐指数
1
解决办法
1621
查看次数

Delphi中的Windows服务与数据库连接

我想了解一下情况.

我创建了一个Windows服务来完成应用程序的任务管理.

该服务连接到数据库(Firebird)并调用执行任务管理的组件.

此过程正常,但在Windows 10中,重新启动计算机后服务不会自动启动.在其他版本的Windows中,一切都很完美.在测试中,我已经确定如果我评论调用任务执行的方法,该服务通常在Windows 10上启动.

Procedure TDmTaskService.ServiceExecute(Sender: TService);
Begin
  Inherited;

  While Not Terminated Do
  Begin
    //Process;
    Sleep(3000);
    ServiceThread.ProcessRequests(False);
  End;

End;
Run Code Online (Sandbox Code Playgroud)

问题是组件或服务中没有生成任何异常.

通过分析Windows事件监视器,我发现我的服务发生的错误是超时,在这种情况下,服务无法在时间限制内连接到服务管理器.不再生成异常.

有没有人有任何关于连接数据库的Delphi制作的Windows服务?

我的源代码示例:

**Base class:**

unit UnTaskServiceDmBase;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
  TDmTaskServicosBase = class(TService)
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  DmTaskServiceBase: TDmTaskServicosBase;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  DmJBServicosBase.Controller(CtrlCode);
end;

function TDmTaskServicosBase.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

end. …
Run Code Online (Sandbox Code Playgroud)

database windows delphi service firebird

2
推荐指数
1
解决办法
923
查看次数

标签 统计

delphi ×3

database ×1

events ×1

firebird ×1

forms ×1

mdi ×1

menu ×1

menuitem ×1

service ×1

windows ×1