问题标签 [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 投票
2 回答
5416 浏览

delphi - 不支持 vcl 样式的选项卡的关闭按钮

我已经使用了本示例中提供的代码How to implement a close button for a TTabsheet for a TPageControl to draw a close button to each tabsheet of a pagecontrol 我已经用代码中的样式服务替换了 ThemeServices 并且在应用样式时关闭按钮没有任何表现和反应。谁能指出我解决这个问题的不同途径。谢谢你!这是 OnDrawTab 事件的代码:

0 投票
1 回答
8845 浏览

delphi - 如何更改主题 TabSheet 标题的文本颜色?

再会!

我需要更改 TPageControl 中某些 TabSheet 标题的文本颜色。图片上有这样的东西

在此处输入图像描述

我知道如何使用 OnDrawTab 来完成。但是如果我启用 OwnerDraw,Windows XP 主题的装饰就会消失。这就是为什么我尝试手动绘制这种装饰。这就是我尝试这样做的方式:

我得到了这个

在此处输入图像描述

(左 - OwnerDraw 版本,右 - 默认绘制)

如您所见,TabSheets 有一些没有被透支的边框。我不能透支这个边界。

如何正确绘制选项卡的背景(如右侧的 PageControl)?

0 投票
2 回答
37365 浏览

delphi - 将标签页动态添加到页面控件并嵌入表单?

我正在开发一个由页面控件组成的模块。默认情况下,此页面控件 ( TPageControl) 不应该有任何选项卡表 ( TTabSheet),但在初始化时,它应该动态插入这些页面并在其中嵌入一个表单。

问题在于知道如何将选项卡表插入页面控件。我如何创建这个?一旦创建了它,以及每个表单中的表单,我如何遍历它们以销毁表单?

0 投票
5 回答
654 浏览

windows - TPageControl 获取索引

如何获取有对象的页面编号?例如:第一页有Button1,第二页有Button2,请问有Button1而没有ActivePageIndex,如何获取页面编号?谢谢。

0 投票
2 回答
944 浏览

delphi - 如何在 TIdCmdTCPServer OnConnect 事件中安全地将 Tabsheet 添加到 PageControl?

当客户端连接到我的代码时,我想Tabsheet动态添加一个:PageControlIdCmdTCPServer

没问题,但是当关闭应用程序时,我会收到带有消息的 EOSError:“系统错误。代码:1400。无效的窗口句柄”。我已经在TButton'sOnClick事件中添加了这个代码块,应用程序将毫无问题地关闭。有没有更安全的方法来做到这一点?


David Heffernan的帮助下,我改变了我的方法:

并命令测试结果:

addtab 命令测试结果

但提到的问题是钢铁在应用程序关闭时发生!

0 投票
0 回答
1026 浏览

delphi - DELPHI - TPageControl 中的 PNG 图像

在我的 Delphi XE3 应用程序中,我将 TPageControl 组件放入 MainForm。我将其“Images”属性链接到包含一些 PNG 图像的 ImageList。在设计时,当我设置每个 TTabSheet 的“图像索引”属性时,图像被正确表示。否则,当我运行应用程序时,我会看到 TTabSheet 中包含的所有图像(应该没有背景)都被黑色方形区域包围。我检查了 ImageList 的设置,发现:

  • -BkColor:clNone
  • -混合颜色:clNone
  • -颜色深度:cd32bit
  • -DrawingStyle:dsTransparent
  • -ImageType:itImage
  • -蒙面:错误


我不知道它是否与问题有关,但我注意到更改项目的设置并启用语音“启用运行时主题”这个问题就解决了。

谢谢。

0 投票
2 回答
10152 浏览

delphi - 使所有者绘制的 TPageControl 选项卡看起来更好,就像没有所有者绘制一样

我使用 Delphi7,PageControl 与所有者绘制。正如我在非所有者绘制的 PageControls 上看到的那样,我无法获得如此简单和漂亮的选项卡外观。不好的是:使用所有者绘制时,我无法在“整个”选项卡标题区域上绘制,选项卡标题周围的小 1-2px 框架由操作系统绘制。

1)Delphi不是owner-draw,看起来也可以(使用XPMan):

德尔福系统

2)Delphi owner-draw,你看到不是整个选项卡标题都可以着色(使用XPMan):

德尔福所有者绘制

我在这里用蓝色绘制当前标签,用白色绘制其他标签。仅举例。代码:

2b) Delphi owner-draw in real app (XPMan used):

德尔福真实应用

为什么我需要使用所有者绘制?简单的。在选项卡标题上绘制 X 按钮,使用自定义颜色绘制上线,从图像列表绘制图标。

我正在寻找一种方法来绘制选项卡标题的整个矩形,而不是减少 PageControl 所有者绘制事件的矩形。我试图增加所有者绘制事件给出的矩形,但这无济于事,操作系统无论如何都会在标签标题周围重新绘制这个薄的 1-2px 框架。

0 投票
1 回答
1496 浏览

delphi - Delphi:向右滚动PageControl选项卡区域

在运行时创建新选项卡后,我看到最后一个选项卡与选项卡标题区域中的系统 [<] 和 [>] 按钮重叠。如何将此区域滚动到最右边的位置?来自一个与我的应用程序相同的 c++ 应用程序的 Img。德尔福 7.

选项卡区域

0 投票
0 回答
2586 浏览

delphi - PageControl 垂直标题

我有一个将 TabPosition 设置为“tpLeft”的 PageControl。您会注意到,当您设置该属性时,选项卡的标题也变为垂直,但我希望这些标题以正常的水平方式显示,尝试更改 TabHeight,但它只会变宽,并且测试仍然显示为垂直。

我该如何解决。

使用德尔福 XE5

更新:此代码有效(感谢'Ken White'):

但这是做到这一点的“正确方法”吗,还有其他更好的方法吗?

0 投票
2 回答
886 浏览

delphi - 如何在 Delphi 中将 TPageControl 选项卡拆分为单独的文件?

我有一个带有五个选项卡的 VCL 表单TPageControl。每个TTabSheet的内容都相当不相关,并且有很多单独的控件和处理逻辑......所以我想把它分解,以便更容易处理“只是那个选项卡”的代码。有一条线

只是不再切割它了。真的,我想我想以某种方式将每个选项卡放在一个单独的文件中。

目前我正在考虑为每个 TTabPage 创建一个 VCL 框架。如果我这样做了,我要么需要将所有帧加载到构造函数中的 TPageControl 中,要么在显示选项卡时加载。

这是一个好方法吗?为每个选项卡制作一个完整的 TForm 会更好吗?我应该继续将选项卡包装在 TPageControl 中,还是应该在动态加载内容时将其更改为 TTabControl?如果这是一个好方法,最好在启动时加载所有选项卡,还是每次显示选项卡时加载?(如果在大多数/所有情况下不是完全明显的情况下,这可能是优点/缺点)