在我正在处理的应用程序的一个部分中,有一个表单控件对接收CMExit消息进行验证,这正是Delphi文档所要求的(这个代码示例来自Delphi文件):
procedure TDBCalendar.CMExit(var Message: TWMNoParams);
begin
try
FDataLink.UpdateRecord; { tell data link to update database }
except
on Exception do SetFocus; { if it fai
我有一个显示模态表单的Delphi应用程序插件。在单独窗体的代码中,它调用另一个exe文件来处理某些文件,然后关闭。插件的第二部分操作从exe创建的文件。
我的问题是,在实际创建外部文件之前,程序还在继续。有没有办法暂停我的Delphi插件并循环,或者等到FileExists返回true后再继续?
伪码:
Launch form (ShowModal)
Form runs exe, manipulates external files
Close Form
Form released
if ExternalFiles exist, do stuff.
因为外部文件是在我的插件之外操作的,所以我
我的一些表单可以同时显示为正常形式和模态形式。如果它们显示为模态形式,我必须隐藏一些在模态状态下没有用的组件。
if(fsModal in Self.FormState) then
begin
//hiding some components...
end;
我希望在绘制表单之前执行我的代码,以避免不必要地绘制更多次。
我有一个VB6项目,我实现了一个自动注销的会话计时器。
我的问题是,如果打开了一个模式表单,则此表单不在Forms集合中,因此我无法知道此表单是否已打开以卸载它。对于非模态表单,没有问题。
如果有人有主意的话?是否可以显示所有打开的窗体(非模态和模态)?
感谢您的回复
编辑:代码片段:
表单创建:
Dim FormLoc As New F_Options
FormLoc.Show vbModal
表单销毁:
For Each mFrm In Forms
unload mFrm
next
For Each mFrm In F_MDIParent.MDIActiveX1.Form
在可能需要几秒钟才能完成的一段C#代码的开头,我想显示一个非模态表单,其中只有一个标签:“请稍候……”
WaitForm myWaitForm = null;
try
{
// if conditions suggest process will take awhile
myWaitForm = new WaitForm();
myWaitForm.Show();
// do stuff
}
finally
{
if (myWaitForm != null)
{
myWaitForm.Hide();
myWaitForm.Dispose();