问题标签 [tform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4580 浏览

delphi - Delphi 非阻塞 ShowModal

我想知道是否有一种方法可以在不等待的情况下显示 TForm(有点像 TForm.Show)。但我想要的是阻止所有其他形式(就像在 ShowModal 中一样)

例子:

我有Form1和Form2。Form1 有一个应该打开 Form2 但 Form1 被阻止的按钮,但单击该按钮仍会继续执行 Form2 打开后的代码。

希望你明白我的意思。

0 投票
1 回答
1498 浏览

delphi - 为什么 TJvFormStorage 不能正确存储表单位置?

我有一个名为fmTest. 如果程序终止,我使用JVCL TJvFormStorage将表单位置、表单大小和表单位置存储在 INI 文件中。

但是,如果我尝试在运行时将 windows 控件拖到底部,直到它只在任务栏附近看到标题部分,然后我释放它并终止程序,程序fmTest启动时不会在该位置启动再次。

有人建议我使用StoredPropsandStoredValues方法,TJvFormStorage但我真的不明白如何使用这些方法。

为什么 TJvFormStorage 不能正确存储表单位置?有什么方法可以正确存储表单位置TJvFormStorage吗?

提前致谢。

0 投票
1 回答
1865 浏览

delphi - RegisterClass X Extended TForm/EFilerError '一个名为 TForm 的类已经存在'‏

我已经在一个单独的单元中扩展了 TForm...

并且这个单元(带有扩展的 TForm)在我想要应用这些扩展的表单的所有单元中声明......

但是,在其中一些单元中具有以下代码片段:

但是这样我得到消息 [EFilerError] '一个名为 TForm 的类已经存在'

过去几天我一直在寻找解决/解决此冲突的方法,但没有成功...

有没有人经历过这种...?或者可以阐明为什么这个问题......?


问题是我已经在 2 个项目中以扩展形式实现了这个单元 - 成功......

刚才,在第三个项目中,表单类在没有被实例化的情况下被调用......我无法更改扩展类表单:

TForm = 类(Forms.TForm)

到:

TStyleForm = 类(Forms.TForm)

...


我需要的是这样的:

但是在单位中我不能做这样的声明:

因为现在它是一个指针...

0 投票
1 回答
166 浏览

delphi - 在 delphi TForm 类中仅使用“public”就出错

这是关于德尔福形式的正常代码。

只需添加一个公共关键字。

得到一个运行时错误。

我对此很困惑。

0 投票
5 回答
7498 浏览

delphi - Delphi 在加载时禁用表单

在我的应用程序中,我有一个主窗体,能够在数据库中加载一些图像。在加载图像时,我想显示一个带有进度指示器(带有 bsNone 边框样式)的表单。

但是,如果我用 ShowModal 显示表单,主表单的执行就会停止,所以我不能这样做。

如果我调用 Show,用户可以访问所有其他表单组件,这可能很危险,而照片没有完全加载。

我需要设法禁用主窗体上的所有内容,而加载尚未完成。

请告诉我,这怎么可能。

0 投票
1 回答
285 浏览

opengl - 带有 VCL 组件的动画 (WM_PAINT)

问题是在 TForm 组件(边框、标题 ..)上单击任何鼠标按钮时 OpenGL 动画停止。只要松开鼠标按钮,动画就会继续。

在更改表单大小时如何不停止动画,任何有用的链接?

0 投票
2 回答
1310 浏览

delphi - 设置 Panel1.Constraints.MinHeight 时,TSplitter 移动时不需要的表单大小增加

我有这种情况(见图),现在当我Splitter1在运行时向上移动时,Panel2高度会增加,而且Form1高度也会增加。

但是我需要知道并阻止这种类型的事件,Splitter1因为达到了无法向上移动Panel1.Constraints.MinHeight,所以Panel2也不能改变它的高度Form1

谢谢你的帮助。

预习

--编辑--
Panel1.Align:= alLeft;
Splitter1.Align:= 底部;
Panel2.Align:= 底部;

0 投票
2 回答
1303 浏览

delphi - 当没有更多引用时,接口实现表单会自行释放吗?

如果我在窗体上实现一个接口,例如TMyForm = class(TForm, IMyInterface),当没有更多的接口引用对象时,它会释放自己吗?似乎没有,尽管我无法弄清楚 TForm 是如何被引用计数的(如果有的话)。我担心当接口引用超出范围时表单会被释放,但这似乎没有发生。

我想这个问题有两个部分,首先是表单是否会被意外释放(真正的问题),其次是表单是如何被引用计数的。

0 投票
2 回答
4320 浏览

delphi - 如何从Delphi中的对象中发现所有者?

我想创建一个过程,它返回分配对象的表单的名称。例如:

我有一个 TPanel,在 TPanel 内有一个 TButton。我将作为参数传递给 TButton 的函数名称,并希望该函数返回我这个按钮在哪里的formuário 名称。

怎么做?

乐:

0 投票
2 回答
431 浏览

delphi - 无法隐藏未完全初始化的窗口

我有这种尴尬的情况导致异常。我发现了问题,但解决方案对我来说实施起来很棘手。

在我们的应用程序中,如果用户在一段时间内保持不活动状态,则会启动安全超时过程以提示用户输入密码框。

但是,每当表单FormShow()由于任何特定原因在事件期间显示消息框(这里要注意的事情;formShow事件执行尚未完全完成)并且用户决定不单击对话框的确定​​按钮时某个时间,安全码会启动并尝试隐藏所有表单,以便提示密码。这种情况会触发异常"Cannot change Visible in OnShow or OnHide"

安全代码循环使用所有表单TScreen.FormCount并单独使用隐藏它们TForm(TScreen.Forms[ii]).Hide。隐藏过程会导致异常,因为我认为这个表单还没有完全完成它的加载过程。

我已经完成了测试,如果我在 FormShow() 事件执行后显示一个消息框,则安全代码可以正常工作并隐藏所有窗口而没有任何问题。

我已经尝试了几个属性和窗口消息检查以在隐藏表单之前进行“如果检查”,例如 Screen.Forms[ii].Visible、Screen.Forms[ii].Active 但到目前为止还没有运气。提到的表单将是可见的,并且不能保证它会处于活动状态,如果它处于活动状态,我将如何隐藏其他非活动表单。所以我的问题是,哪个属性或 Windows 消息将表明表单已完全加载,或者至少它已经超过了FormShow存在于中的任何给定表单的事件TScreen.Forms

我需要一个我所问问题的答案,我需要一个需要在安全代码中实现的通用解决方案,我无法通过我们在这个巨大的应用程序中拥有的一千多个表格并单独尝试找到任何解决方案这些表单中存在验证/警告逻辑。

谢谢