我编写了一个淡入淡出的表单,显示了一段时间,然后淡出.衰落是通过计时器实现的,该计时器也关闭表格.它工作正常.
我以模态方式显示表单,但我怀疑主表单在开始表单关闭之后才开始构建和显示.
然后我想,如果我以非模态方式显示表单并使用fsStayOnTop(即SplashForm.Show而不是SplashForm.ShowModal),那么只要显示启动表单,主表单就可以在启动表单后面初始化,这意味着应用程序已准备就绪当飞溅形式关闭时去.
然而,我发现计时器事件不再发生.也没有TApplication.OnIdle事件.是什么赋予了?
如果有可疑的参数值,则会在对话框中显示"警告"图像.用户并不总是会注意到它,所以我想在一秒左右的时间内循环淡入淡出(是的,我可以切换Visible属性,但这看起来有点像我只是切换Visible属性).有没有比将它放在自己的表单上并将其浮动在对话框上(以及更改表单的AlphaBlendValue属性)更简单的方法?
这是这个问题的延续.我有一个文件,我想要包含我的安装包(.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 ('{???}')
文件的路径?我在向导表单上有一个调用上面的处理程序的帮助按钮.
我在退出我的应用程序时偶尔会遇到这个问题 - 我的应用程序正在通过网络运行 EXE。我知道这是按需加载部分 EXE 时的页面错误。
我也在 TDrawGrid 的 OnDrawCell 方法中观察到它,所以我很困惑这可能是如何导致页面加载的。此外,异常不断发生。
所以我的问题:
错误 C0000006 是否可能由其他原因导致?我对应用程序管理内存的方式进行了相当大的更改,尽管没有什么特别之处,而且我相信代码的行为。
如何让应用程序在启动时将其全部加载到内存中(在 Delphi 2006 中 - 我知道有针对更高版本的 Delphi 的指令)。
TIA
说我有这样一张桌子:
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个结果的语句?这样做是否有任何性能优势(假设在实践中列和行的数量可能非常大)?
我有一个delphi应用程序,最小化运行托盘图标.双击托盘图标时,应用程序将打开一个非模态用户界面表单.
我已经为应用添加了逻辑,以检测它是否已经在运行.如果它没有运行,它会启动并将自身减少到托盘.
如果它已经在运行,我希望它将控制权传递给它自己的第一个实例并打开非模态表单,然后退出(第二个实例).最好的方法是什么?
TIA R
我有一个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) 我有一个以两种方式发布的应用程序,原因与此处无关.它们的区别很小,主要是"徽章",奇数串等.
这两个版本都包括:
正如我所料,两个版本中的每一个中的文件大小几乎相同.上述文件的总大小为13 Mb,但两种文件之间的文件大小差异仅为1900字节左右.
InnoSetup生成的安装程序EXE的大小不同,为42.6k!
什么会导致这个?我有一种唠叨的担心,即某些装置已被"遗漏",尽管它们似乎可以检查出来.因为IS没有提供有关如何构建安装程序包的任何详细信息,所以我无法跟踪此异常情况.
任何想法,任何人?
我听说Delphi应用程序使用"延迟加载",推迟加载表单组件,直到实际引用它们为止.在另一篇文章中提到过- "这就是为什么我们将TPageControl更改为延迟加载 - Delphi IDE的选项对话框加载时间太长了!"
我假设这也适用于使用Delphi创建的应用程序,但是我在VCL源代码中找不到任何延迟加载的提及,这表明如果确实存在,它可能被称为其他东西.
在正常使用情况下,应用程序不经常启动并运行很长时间,可能需要放弃更快的启动时间,并在第一次实际使用时更快地绘制VCL组件.
Delphi程序员是否对此有任何控制权?(LazyLoad := false ;
没工作;-)
我想在运行时确定是否在IDE中特别忽略了异常类.原因是:当从IDE运行应用程序时,我可能会收到一个异常,我知道原因,但现在不想处理.所以我选中"忽略这些例外"框并单击继续.
我可能忘记稍后禁用此设置,因此我想在应用程序启动时添加代码以警告我列表中的异常Tools/Options/Debugger Options/CodeGear Debuggers/Language Exceptions
被忽略.
另一种方法是可以在不触发IDE中的异常的情况下确定异常类状态(即是否忽略)的代码片段.
delphi ×7
delphi-2006 ×3
inno-setup ×2
installer ×2
trayicon ×2
asp-classic ×1
count ×1
delphi-2007 ×1
delphi-ide ×1
exception ×1
executable ×1
filesize ×1
helpfile ×1
hint ×1
invocation ×1
minimize ×1
mutex ×1
non-modal ×1
page-fault ×1
sql ×1
tform ×1
timage ×1
timer ×1
transparency ×1
vcl ×1