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

delphi - 如何更改 TPageControl 上标签的方向?

我是 Delphi 的新手(同样——我在 1994 年使用过 Delphi)。我现在有 Delphi 2009 Pro。

来自Java,我发现对象继承非常模糊。

我的用户想要带有左侧选项卡的选项卡式页面。但是,TPageControl 不允许更改选项卡标签方向或方向。他们希望标签上的单词从上到下阅读,字母旋转,使它们处于“正常”方向。使用左侧的标签,标签从底部向上读取,字母旋转 90 度。向左倾斜,并且倾向于将头向左倾斜以阅读标签。我发现标准 TPageControl VCL 的一些增强功能为悬停和活动添加了图像、文本和颜色更改,但没有允许在选项卡上操纵字体方向或方向。

页面控制选项卡应类似于:


1

_
_

第 2 页
_ _


第 3 页
_ _


等等...

0 投票
3 回答
4243 浏览

delphi - 如何将Delphi TPageControl“标签索引”转换为“页面索引”?

我正在使用 TPageControl,其中某些页面不可见。

这打破了 TabIndex 和 ActivePageIndex 属性的正常 1:1 映射。

在大多数地方,我可以使用 ActivePageIndex(或 ActivePage 本身)来获取当前页面,但我想要一个动态工具提示提示,它要求我确定哪个页面与特定的选项卡索引相关联。

如果我调用 pageControl.IndexOfTabAt(X, Y),我会得到一个选项卡索引,但我不能直接将它用作 Pages[] 数组的索引,因为某些页面选项卡是不可见的。

我可以明确地遍历页面,忽略可见的页面,但感觉 VCL 中应该有一些东西已经为我做了这个......?

0 投票
4 回答
22282 浏览

delphi - 如何为 TPageControl 的 TTabsheet 实现关闭按钮

如何为 Firefox 之类的 TPageControl 的 TTabsheet 实现关闭按钮?

编辑:
Delphi 版本:Delphi 2010
操作系统:Windows XP 及以上

0 投票
4 回答
2345 浏览

delphi - 如何访问嵌入在页面控件中的表单的控件?

在 Form1 中,我有 PageControl。在运行时,我的程序会创建标签页。在每个 TabSheet 中,我创建 Form2。在 Form2 我有一个 Memo1 组件。如何将文本添加到 Memo1?

0 投票
1 回答
2248 浏览

delphi - Delphi TPageControl 没有响应点击选项卡

我在主窗体上有一个带有 TPageControl 的应用程序。pagecontrol 有几个选项卡。该应用程序可以最小化为托盘图标。有时在运行最小化一段时间后,当我恢复主窗口(通过鼠标右键单击托盘图标)时,会显示最后显示的选项卡,但我无法选择任何其他选项卡!

如果我单击另一个选项卡,则外观会发生变化,因此该选项卡似乎是活动选项卡(即选项卡本身移动到选项卡行的前面),但选项卡的主体保持原样。我也有菜单项和快捷键来选择其他选项卡,它们的行为相同。如果我键入 Alt-O(选项),顶部的选项选项卡将变为活动状态,但我看不到该选项卡主体上的内容 - 我仍然看到另一个选项卡的内容。

我已经验证,当我单击另一个选项卡时焦点会从第一个选项卡上移开,而当我单击该选项卡时焦点会移回。

我尚未确定该行为是否仅限于特定选项卡,因为它需要一段时间才能发生。

有任何想法吗?

更新

有趣的笔记。我已经确定问题是在这些情况下发生的。应用程序启动,然后最小化到托盘。检测到警报条件,弹出一个窗口并恢复主窗口(这是应用程序的预期行为)。正是在这一点上观察到了故障——即,当我单击其他选项卡时,我看不到它们。

  • 启动应用程序。显示选项卡 1
  • 最小化应用程序。到托盘
  • 等待弹出窗口显示,主窗体已恢复
  • 单击选项卡 2 FAULT OBSERVED(选项卡 2 正文不显示)
  • 在 TWinControl.CreateHandle 中放置断点
  • 单击选项卡 3 - 休息
  • 运行 - 不显示 Tab 3 正文
  • 单击选项卡 1 - 不会中断
  • 单击选项卡 3 - 不会中断
  • 单击选项卡 4 - 中断
  • 运行 - 不显示 Tab 4 正文
  • 单击选项卡 1、2、3、4 - 不会中断

因此,似乎选项卡在第一次单击时创建了它们的句柄,从那时起,它们认为它们存在,但它们不显示。如果弹出窗口被禁用,则不会观察到故障。弹出窗口由 Application.OnIdle 任务触发。

另一个更新:一些进展。在网上闲逛之后,我做了一些改变。

我删除了以下代码:

并将其替换为:

我删除了:

并将其替换为:

问题似乎已经消失了。然而。现在我可以在启动后最小化应用程序,弹出窗口并以模态方式显示,主窗体显示,所有选项卡显示和工作。但。我无法再次最小化表单。OnMinimize 处理程序在第一次之后不会被触发。呸呸呸。

我仍然无法理解为什么它现在可以工作,这有点令人担忧。我如何让它再次最小化?

0 投票
2 回答
5526 浏览

delphi - 如何减少 Delphi 中的 PageControl 闪烁?

在 Delphi 2009 中,我发现 PageControl 的闪烁(在调整表单大小期间发生)可以通过将其DoubleBuffered属性设置为 true 来减少。

但是,如果我将控件添加到 PageControl 选项卡表中,无论它们的 DoubleBuffered 属性设置如何,它们都会闪烁。我也尝试过启用和不启用运行时主题。

0 投票
5 回答
28166 浏览

delphi - 如何更改 TTabSheets 的背景颜色?

我正在用 Delphi 2009 设计一个表单,我试图找出 TPageControl 元素。我试图为每个选项卡制作单独的对话框。我可以制作 TTabSheets,也可以将元素放在 TabSheets 上,但我的问题是它们是大麦可见的,因为 TTabSheet 的默认背景似乎是白色的。我试图在 TabSheet 上放置一个面板,但无论出于何种原因,面板总是出现在 TabSheet 后面。所以我的问题是:有没有办法将标签页的颜色更改为标准的窗口米色,或者他们是否可以在标签页上放置一个 TPanel 以实现相同的目标?

0 投票
3 回答
838 浏览

delphi - TPageControl.OnChange 中的慢事件处理程序导致奇怪的行为

当我向OnChangeTPageControl 事件添加慢代码时,我遇到了问题。

如果代码很快并且不需要太多时间,那么一切都很好。
但是,如果代码需要很长时间才能返回 +/- 0.5 到 1 秒,PageControl 就会开始表现得很奇怪。

如果用户更改了页面,有时它在第一次单击时不会执行任何操作,并且需要在页面上进行第二次单击才能实际进行更改。

我已经用这样的代码解决了这个问题。 (我已经简化了一点,只是为了展示这个想法)

正如你所看到的,这是一个可怕的黑客攻击。
我正在调用的代码在 QuickReport 中用于准备报告和 MySQL 查询等,因此我对此没有太多控制权。

我认为有一些 Win32 消息由于没有足够快地从 TPageControl.OnChange 返回而搞砸了,但延迟肯定短于 3 秒。

我试过ProcessMessages了,但这只会让事情变得更糟,我不想为此使用单独的线程。

我该如何解决这个问题,以便我可以像平常一样使用OnChange事件处理程序

0 投票
3 回答
19900 浏览

delphi - 如何设置 TPageControl 的当前页面?

我正在使用一个页面控件组件,我需要添加一个按钮并单击它以转到指定页面。

请问我该怎么做?

0 投票
3 回答
2428 浏览

delphi - Delphi:什么组件是(TDockTabSet?)以及如何使用它?

在此处输入图像描述

这是 Delphi 的 TDockTabSet(突出显示)吗?还是其他组件?如何使用它。我想使用它而不是 TPageControl 但具有相同的功能 - 例如选项卡表。

再来一张图片:http ://www.tmssoftware.com/site/asg58.asp

谢谢!