问题标签 [tframe]

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 回答
268 浏览

delphi - 为 TFrame 的后代执行了两次加载的过程

我已经注册为组件 aTFrame的后代类,我注意到该Loaded过程执行了两次:

运行:

设计时间:

输出:

在运行时,创建一个包含TMyFrame组件的表单。

在 TMyFrame.Create 之前

在 TMyFrame.Loaded 之前

在 TMyFrame.Loaded 之后

在 TMyFrame.Create 之后

在 TMyFrame.Loaded 之前

在 TMyFrame.Loaded 之后

在设计时,将 a 添加TMyFrame到表单中:

在 TMyFrame.Create 之前

在 TMyFrame.Loaded 之前

在 TMyFrame.Loaded 之后

在 TMyFrame.Create 之后

在设计时,打开一个包含TMyFrame组件的表单:

在 TMyFrame.Create 之前

在 TMyFrame.Loaded 之前

在 TMyFrame.Loaded 之后

在 TMyFrame.Create 之后

在 TMyFrame.Loaded 之前

在 TMyFrame.Loaded 之后

为什么Loaded程序会执行两次?如何避免这种情况?

0 投票
1 回答
1312 浏览

delphi - 如何在自己的单元中拥有 TTabControl 的每个选项卡/使用 TFrame 而不是选项卡?

我有一个带有显示 10 个选项卡的 TabControl 的 FMX 应用程序(但在 VCL 中应该相同)。根据应用程序状态和用户权限,选项卡设置为可见或不可见。

它运作良好,但我不喜欢

  • 一切都在一起,并以主要形式混乱

  • 和选项卡内容被初始化,即使它们从未变得可见。

所以我考虑使用在标签可见时创建的框架。

每个框架只能存在一次,并且应该可以轻松地从另一个框架操作一个框架(另一个框架上的访问控制)。

我喜欢优雅的解决方案和简短的代码 :)

这是我已经找到的,非常好,但很旧: 用框架替换 TabSheets - 由 Dan Miser

0 投票
3 回答
3077 浏览

delphi - Delphi:TFrame错误没有可插入的帧

它发生在我身上,Delphi XE6 IDE忘记TFrame了我过去创建的所有后代。

更具体地说,当我单击 Standard -> Frames 时,选择我的框架的对话框不再显示。

相反,它显示以下错误消息:

没有可插入的框架。可以从文件|新建|其他选择中创建新框架。

有没有办法补救这种情况?

EDIT1遗憾的是无法复制步骤:老实说,我不确定这是怎么发生的,但确实如此。我认为从某些版本的 Delphi 升级到另一个版本时可能是罪魁祸首。随着时间的推移,我多次进行此升级,我记得在 Delphi 7 中启动项目,然后有一些我不记得的版本,我使用的最后两个版本是 XE2,直到现在是 XE6。


Edit2如果框架是使用 XE2 之前的 Delphi 版本创建的,则会发生这种情况。

0 投票
2 回答
237 浏览

delphi - 创建 TFrame 并将其分配给父控件时如何避免显示“闪烁”

例如:我有一个 TFrame(称为 TPageFrame),它有许多控件,例如左对齐的 TreeView、拆分器和由编辑和 RichEdit 组成的主客户区,如下图所示:

在此处输入图像描述

代码看起来像这样:

在主窗体中,我有一个带有几个选项卡的 RzTabControl。当我移动到新选项卡时,将创建一个新 Frame(存储在 Frame 数组中),并且它的父级设置为 RzTabControl。

问题:在创建框架并设置其父级时,有很多“显示噪音”:

在此处输入图像描述

查看编辑控件如何在 2 个位置绘制两次。(用视频演示会更容易......)

如何避免这种闪烁?

0 投票
0 回答
83 浏览

delphi - 使用消息通知 TFrames 他们应该刷新底层数据集

我正在使用 TFrame 将表单的不同部分(视觉元素和代码)拆分为不同的单元。例如,如果我的表格是一张发票,我有 Frame#1 显示客户、发票日期和总金额,而 Frame#2 包含包含数量、产品名称和金额的产品列表。

每当用户添加/编辑/删除产品线时,我希望 Frame#2 通知所有框架的更改。然后第 1 帧将重新计算总量。

我想使用 Windows 消息来执行此操作,但我不确定这是否可行。

我已经定义(在所有单元使用的 DataModule 中):

然后在 Frame#1 我定义了我的“处理程序”:

在第 2 帧中,当发生更改时,我会:

但是从不调用 RefreshAmount。我第一次尝试:

但我猜消息是专门“分派”到发送帧的。我也猜测我的处理程序只收听发布到它自己的句柄的消息。

是否可以将所有帧都连接到应用程序的消息?处理这种情况的正确方法是什么?

0 投票
1 回答
112 浏览

delphi - 根据 TreeView 中检查的项目创建 TabSheet 和 Frame

我的TTreeView表单上有一个从数据库表中填充的表单。该列表目前有 22 个项目,并且所有项目都有可以选中的复选框。

TTreeViewaTForm上具有 aTPageControl和预制的TTabSheet所有其他TTabSheets 是动态创建并分配TFrame给它们的。

我当前在运行时创建新的代码TTabSheet如下所示:

LoadFrame()过程的代码是:

其他相关代码:

假设我选中了TTreeView.

如何确定并修改代码以仅为我在 中签入的项目Button2创建TTabSheets 及其s ?TFrameTTreeView

0 投票
1 回答
165 浏览

c++ - 在运行时动态创建多个帧时出错(C++、FMX、IDE:C++ Builder)

我想动态创建一系列 Frame 组件,然后将指针保存到向量中。

我能够毫无问题地动态创建 TEdit 组件,但是如果我将 TEdit 替换为框架组件的名称(包含编辑框),程序将出错。将创建第一帧,但在创建第二帧时出错,说明“外部异常 EEFFACE”

这是相关的代码。请注意,如果我用 TEdit 替换 TFrame2,它可以工作。

这是单击后的样子。

在此处输入图像描述

单击 2 次后出现错误消息。

在此处输入图像描述

这就是我希望它在两次点击后的样子。

在此处输入图像描述

这就是我在点击 3 次后用 TEdit 替换 TFrame2 时的样子。

在此处输入图像描述

-

编辑

如果我尝试对两个框架的创建进行硬编码,第一次单击时会出现相同的错误。

-

编辑 2

在这篇文章中

FireMonkey 框架可以动态创建吗?

我看到一条评论说

我应该在这里注意,似乎框架对象需要在创建后立即手动分配一个唯一的 Name 属性,至少在使用 C++ 时,否则创建的下一个相同类型的框架对象将尝试使用与第一个相同的名称.

0 投票
1 回答
81 浏览

delphi - Firemonkey TFrame - 如何触发祖先 TFrame 事件?

我创建了一个基本的 TFrame 类,例如 TBasicFrame

有一个名为 btnTest 的按钮,它执行一项简单的任务

在另一个 TForm 或 TFrame 上,我将这个 TBasicFrame 放在它上面。但是,当我单击此 btnTest 或具有 TBasicFrame 实例的 TForm/TFrame 时,显示消息不会运行。

我必须做些什么来确保祖先框架中的所有代码都能执行?这意味着即使将新的 TBasicFrame 实例放置在任何地方,showmessage('test') 也会运行。

有什么建议吗?

0 投票
0 回答
119 浏览

delphi - 如何保存和加载 TFrame 内容?

我使用以下代码保存和加载我的表单:

它适用于表单,但是当尝试对其执行相同操作时TFrame它不起作用,因为它没有CreateNew程序。如何保存和加载此框架?特别是如果它包含动态创建的控件。

Windows 7,德尔福 7。

0 投票
1 回答
65 浏览

c++builder - TFrame 覆盖样式颜色

我有一个框架,颜色为 clSkyBlue,它位于一个应用程序中,其中包含面板和各种颜色为 clSkyBlue 的东西。该程序使用 TStyleManager 将颜色设置为当前样式。(即 windows10、windows10 暗等)。问题是样式管理器中的所有颜色都设置了正确的颜色,但仍然是 clSkyBlue 的框架除外。

如何强制框架遵循当前选择的样式?