小编ros*_*mcm的帖子

如果非模态显示,delphi启动窗体不会触发计时器事件

我编写了一个淡入淡出的表单,显示了一段时间,然后淡出.衰落是通过计时器实现的,该计时器也关闭表格.它工作正常.

我以模态方式显示表单,但我怀疑主表单在开始表单关闭之后才开始构建和显示.

然后我想,如果我以非模态方式显示表单并使用fsStayOnTop(即SplashForm.Show而不是SplashForm.ShowModal),那么只要显示启动表单,主表单就可以在启动表单后面初始化,这意味着应用程序已准备就绪当飞溅形式关闭时去.

然而,我发现计时器事件不再发生.也没有TApplication.OnIdle事件.是什么赋予了?

delphi timer splash-screen non-modal

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

向Delphi的TImage添加AlphaBlendValue属性的最简单方法是什么?

如果有可疑的参数值,则会在对话框中显示"警告"图像.用户并不总是会注意到它,所以我想在一秒左右的时间内循环淡入淡出(是的,我可以切换Visible属性,但这看起来有点像我只是切换Visible属性).有没有比将它放在自己的表单上并将其浮动在对话框上(以及更改表单的AlphaBlendValue属性)更简单的方法?

delphi transparency timage alphablending delphi-2006

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

Innosetup - 在安装开始之前从[Code]引用文件

这是这个问题的延续.我有一个文件,我想要包含我的安装包(.CHM帮助文件),我需要在安装过程中从代码访问.它不需要安装到用户的机器上.所以我想
- 将文件包含在安装包中,可能是未压缩的(所以我想我会用[Files] ... external标志来做).
- 在安装过程中使用以下代码引用文件:

procedure HelpButtonOnClick (Sender: TObject) ;   
var
    ErrorCode : Integer ;

begin
ShellExecAsOriginalUser ('open', ExpandConstant ('{???}') +  '\MyHelp.chm', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end ;
Run Code Online (Sandbox Code Playgroud)

那么我可以在安装开始之前引用该文件 - 即在将任何文件复制到用户机器之前吗?如何指定ExpandConstant ('{???}')文件的路径?我在向导表单上有一个调用上面的处理程序的帮助按钮.

installer helpfile inno-setup context-sensitive-help

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

在 D2006 应用程序中获取外部异常 C0000006 - 如何强制 delphi 加载整个可执行文件?

我在退出我的应用程序时偶尔会遇到这个问题 - 我的应用程序正在通过网络运行 EXE。我知道这是按需加载部分 EXE 时的页面错误。

我也在 TDrawGrid 的 OnDrawCell 方法中观察到它,所以我很困惑这可能是如何导致页面加载的。此外,异常不断发生。

所以我的问题:

错误 C0000006 是否可能由其他原因导致?我对应用程序管理内存的方式进行了相当大的更改,尽管没有什么特别之处,而且我相信代码的行为。

如何让应用程序在启动时将其全部加载到内存中(在 Delphi 2006 中 - 我知道有针对更高版本的 Delphi 的指令)。

TIA

delphi executable exception delphi-2006 page-fault

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

从一个ASP SQL语句返回几个COUNT结果

说我有这样一张桌子:

Field1  Field2  Field3  Field4
fred    tom     fred    harry 
tom             tom
dick    harry
harry           
Run Code Online (Sandbox Code Playgroud)

我想确定每个领域已完成的比例.

我可以执行:

SELECT COUNT (Field1) WHERE (Field1 <> '') AS Field1Count      
SELECT COUNT (Field2) WHERE (Field2 <> '') AS Field2Count
SELECT COUNT (Field3) WHERE (Field3 <> '') AS Field3Count      
SELECT COUNT (Field4) WHERE (Field4 <> '') AS Field4Count  
Run Code Online (Sandbox Code Playgroud)

是否可以将这些单独的SQL语句汇总到一个将在一次命中中返回4个结果的语句?这样做是否有任何性能优势(假设在实践中列和行的数量可能非常大)?

sql count asp-classic

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

重新激活托盘中运行的应用的最佳方法是什么?

我有一个delphi应用程序,最小化运行托盘图标.双击托盘图标时,应用程序将打开一个非模态用户界面表单.

我已经为应用添加了逻辑,以检测它是否已经在运行.如果它没有运行,它会启动并将自身减少到托盘.

如果它已经在运行,我希望它将控制权传递给它自己的第一个实例并打开非模态表单,然后退出(第二个实例).最好的方法是什么?

TIA R

delphi mutex trayicon minimize invocation

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

德尔福 - 如何找到定期"鬼"托盘气球弹出窗口的来源?

我有一个D2006应用程序,通过托盘气球提示通知各种事件.每隔一段时间,但不经常 - 比如说应用程序的10次调用中的1次 - ,其中一个提示决定它会一次又一次地弹出......永远.唯一阻止它的是关闭应用程序.

如果应用程序发出另一个气球int,它将替换幻像提示,但在新提示超时后,幻像提示返回.同样,如果我关闭幻像提示,它会立即返回.

我已经验证了创建提示的代码没有被重复调用.暗示在某处更深入肠道.

    MainForm.TrayIcon1.BalloonFlags   := Flag ;
    MainForm.TrayIcon1.BalloonTitle   := Title ;
    MainForm.TrayIcon1.BalloonHint    := Message ;
    MainForm.TrayIcon1.BalloonTimeout := Delayms ;
    MainForm.TrayIcon1.ShowBalloonHint ;
Run Code Online (Sandbox Code Playgroud)

delphi trayicon hint delphi-2006 popup-balloons

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

我遇到了Inno Setup生成的设置EXE大小的问题

我有一个以两种方式发布的应用程序,原因与此处无关.它们的区别很小,主要是"徽章",奇数串等.

这两个版本都包括:

  • 应用可执行文件
  • 该应用程序帮助CHM文件
  • 安装程序的单独的较小CHM帮助文件
  • PDF版本的应用程序帮助
  • 一个"readme.txt"
  • 示例批处理文件

正如我所料,两个版本中的每一个中的文件大小几乎相同.上述文件的总大小为13 Mb,但两种文件之间的文件大小差异仅为1900字节左右.

InnoSetup生成的安装程序EXE的大小不同,为42.6k!

什么会导致这个?我有一种唠叨的担心,即某些装置已被"遗漏",尽管它们似乎可以检查出来.因为IS没有提供有关如何构建安装程序包的任何详细信息,所以我无法跟踪此异常情况.

任何想法,任何人?

installer inno-setup filesize

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

Delphi - 是否可以禁用Delphi的延迟加载表单?

我听说Delphi应用程序使用"延迟加载",推迟加载表单组件,直到实际引用它们为止.在另一篇文章中提到过- "这就是为什么我们将TPageControl更改为延迟加载 - Delphi IDE的选项对话框加载时间太长了!"

我假设这也适用于使用Delphi创建的应用程序,但是我在VCL源代码中找不到任何延迟加载的提及,这表明如果确实存在,它可能被称为其他东西.

在正常使用情况下,应用程序不经常启动并运行很长时间,可能需要放弃更快的启动时间,并在第一次实际使用时更快地绘制VCL组件.

Delphi程序员是否对此有任何控制权?(LazyLoad := false ;没工作;-)

delphi vcl tform

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

Delphi 2007 - 是否有可能在运行时获取被忽略的异常类列表?

我想在运行时确定是否在IDE中特别忽略了异常类.原因是:当从IDE运行应用程序时,我可能会收到一个异常,我知道原因,但现在不想处理.所以我选中"忽略这些例外"框并单击继续.

我可能忘记稍后禁用此设置,因此我想在应用程序启动时添加代码以警告我列表中的异常Tools/Options/Debugger Options/CodeGear Debuggers/Language Exceptions被忽略.

另一种方法是可以在不触发IDE中的异常的情况下确定异常类状态(即是否忽略)的代码片段.

delphi exception-handling delphi-2007 delphi-ide

0
推荐指数
1
解决办法
202
查看次数