问题标签 [tpagecontrol]

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

delphi - 如何在 VCL 样式的页面控件上进行所有者绘制

当我有这个时:

我可以在页面控件上进行所有者绘制:

当我有这个时:

我绘制的三角形丢失了。

如何使用任何 VCL 样式绘制三角形?

德尔福 10 西雅图。

0 投票
2 回答
453 浏览

delphi - 如何将标准窗口信息图标很好地绘制到页面控件选项卡的索引

我想要将标准的 Windows 信息(以及警告和错误)图标绘制到 pagecontrol 选项卡的索引上。但是,如果 Windows 背景颜色不是白色,则结果看起来很糟糕。

这是一个屏幕截图: 在此处输入图像描述

正如你所看到的白色边框是模糊的,我猜这是因为 TImageList 缺乏适当的 alpha 透明度,但我不知道如何解决这个问题。

该解决方案不必使用 TImageList,我很乐意使用任何其他方法。请注意,还会有标题,并非所有索引都有图标,并且图标可能会随着上下文的变化而更改/添加/删除。

我正在使用 Delphi XE-2,如果有帮助的话,我也有 DevExpress 组件。

0 投票
1 回答
192 浏览

delphi - 动态创建 Tpagecontrol 实例

我已经搜索和搜索,但没有找到示例。我想动态创建PageControl实例,每个实例都有自己的 setoff TTabsheets。我没有收到来自 Delphi IDE 的任何投诉,但是我确实得到了:

模块 FormApplication.exe 写入地址 00000000 中的访问冲突

有什么我想念的吗?

0 投票
0 回答
113 浏览

delphi - 为什么编译器在 TTabSheet 中先执行 OnShow 事件,然后再执行 OnHide?

我正在使用TPageControlwith 2 TTabSheet(ModifyTab 和 DeleteTab),并且两个选项卡都有代码OnShowOnHide事件。我在想,当我单击这些选项卡中的任何一个时,OnHide首先发生所选选项卡的事件,然后单击选项卡的事件,OnShow但情况恰恰相反。为什么?

我在每个事件中创建一个TDictionary并在每个OnShow事件中释放,OnHide但编译器引发异常,因为它执行OnShow事件,然后执行OnHide,然后我不能使用 Dictionary,因为它已经nil被销毁。

0 投票
0 回答
270 浏览

delphi - 如何更改delphi选项卡中选项卡内标题的方向?

我正在尝试使用delphi制作一个页面控件,问题是当我将标签页的位置切换到侧面时,标题也发生了变化,我希望它是水平的,关于如何做到这一点的任何线索?提前致谢。

0 投票
1 回答
112 浏览

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

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

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

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

LoadFrame()过程的代码是:

其他相关代码:

假设我选中了TTreeView.

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

0 投票
1 回答
61 浏览

delphi - 如何在运行时从代码将表单停靠到 TPageControl

我正在使用 TPageControl 构建应用程序。

这用于停靠表单。用户可以在 TPageControl 内部或外部使用表单。

有时,应用程序可能会从桌面上的表单开始,而其他时候则在 TPageControl 内。

表单在启动时自动创建。

这是我用来在运行时加载表单的代码:

问题是当我在运行时手动将表单从 TPageControl 中取出时,出现堆栈溢出错误。

不知道为什么会发生这种情况,因为表单归应用程序所有。

我该如何解决这个问题?

干杯,E。

0 投票
0 回答
85 浏览

delphi - 窗口在对接/脱离时松开手柄

我在主窗体上使用 PageControl 作为其他窗体的停靠站点。

其中一种形式,fPanelSonar,有一个面板,用作我加载的第 3 方应用程序的容器,如下所示:

这很好用,我的第 3 方应用程序已按我的需要加载。

问题是当我将 fPanelSonar 放入 PageControl 时,即使它的进程“pingviewer.exe”仍在运行,第 3 方应用程序也会消失。

由于我保存了 hwnd fPanelSonar.hdlPing360 我应该能够再次将其设置回其父级,但它似乎虽然这个句柄是无效的,因为它不起作用。(即使我取消了它)。

此外,一旦我停靠/取消停靠,我就找不到任何其他手柄:

我仍然可以使用我在论坛上找到的这个函数找到进程 ID,所以我知道它没有被杀死。(我也可以在窗口的任务管理器中看到它)

我试图找到带有进程 ID 的硬件,但它不起作用。

请注意,如果我在分配 pingviewer.exe 父级之前对接 fPanelSonar,它确实有效。

目前,我可以使用停靠/取消停靠事件来终止 pingviewer 进程并加载一个新进程,但这非常混乱......

所以我有点困惑为什么会发生这种情况以及如何正确解决它。

干杯,E。

0 投票
1 回答
109 浏览

delphi - DELPHI - 如何将 tlabeledit 插入到 TpageControl 中的动态选项卡表中

我需要有这个我在动态创建的动态 ttabsheet 中提到的 ini 文件!如您所见,它包含三个部分,每个部分都以 001-002-003 开头,然后让那些在第一个标签页中以 001 开头的部分,在第二个标签页中以 002 开头的部分以及在我的页面控件中以第三个标签页中以 003 开头的部分。

这是我的ini文件

我不知道该怎么办!?任何的想法 ?

谢谢