我想要一个TPageControl和一些TTabSheets,当我依次悬停在每个标签上时,"每个标签页"工具提示提示可见.
有没有办法在Delphi 2009中获得这种效果?
包括一个展示我的问题的小项目.我有一个TPageControl
与主表格对齐的.在两个标签页中的每一个上,我都有面板客户端对齐.在每个面板上,我有2个子面板和一个分割器.LH面板和分离器左对齐,RH面板客户端对齐.
基本上问题是两个选项卡之间的交互.展示:
好的,这种行为可能是根据对齐面板的规则来解释的,但有人可以建议改进操作吗?
unit Unit17;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls;
type
TForm17 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
Panel2: TPanel;
Splitter1: TSplitter;
Panel3: TPanel;
Panel4: TPanel;
Splitter2: TSplitter;
Panel5: TPanel;
Panel6: TPanel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form17: TForm17;
implementation
{$R *.dfm}
end.
object Form17: TForm17
Left = 0
Top = 0
Caption …
Run Code Online (Sandbox Code Playgroud) 我有以下代码,可以在我的标签页上的给定选项卡上循环所有组件.我已经尝试过在网上找到的相同代码的许多变体,但我根本无法让它工作.首先,我检查它是否是正确的选项卡 - 这是有效的.然后我检查看有多少组件 - 这不起作用.即使我现在有2个面板共有9个复选框,它也会显示0个组件.
procedure TfrmHsUsers.pagUsersClick(Sender: TObject);
var
i: integer;
Fieldname: string;
begin
if pagUsers.Properties.ActivePage.Name = 'tabProgram' then
begin
ShowMessage(IntToStr(pagUsers.Properties.ActivePage.ComponentCount));
for i := 0 to pagUsers.Properties.ActivePage.ComponentCount - 1 do
if (pagUsers.Properties.ActivePage.Components[i]) is TcxDbCheckBox then
begin
Fieldname := TcxDbCheckBox(pagUsers.Properties.ActivePage.Components[i]).DataBinding.DataField;
TcxDbCheckBox(pagUsers.Properties.ActivePage.Components[i]).Enabled := Settings.License.IsEnabled(Fieldname);
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
我的代码中可能有什么问题的任何提示?