gpt4 book ai didi

delphi - 为什么我不能在 Delphi 7 中启用主题的 TSpeedButtons 上设置字体?

转载 作者:行者123 更新时间:2023-12-03 18:17:57 26 4
gpt4 key购买 nike

发生了一件很奇怪的事情:
我有一大堆 TFrame(可能是 TCustomFrame,不记得了,因为我在 40 个奇数帧和父级之间创建了一个中间类),我继承它们以构成“非常酷”的 HL7 公式的配置部分编辑。奇怪的是,框架上的 DFM 不断向 DFM 添加 OldCreateOrder、PixelsPerInch 和 TextHeight,尽管我从未在基类中实现这些属性。
无论如何,即使我不想,我也必须将这些属性放在我的子类中,否则它不会让我编译,很好。然后我将其中一个颜色选择器控件添加到我的一个框架中,直到上周它开始给我提供关于无法找到父级的业务。
所以......我摆脱了我所有的 DFM 我将所有框架更改为面板并且它工作正常(在我的计算机上,在没有主题的 VM 中运行 XP),但是对于我左边的同事( native 运行 Windows 7 )我在这些面板上使用 TSpeedButtons 做什么并不重要,它们总是有相同的 Sans 10pt Bold 字体,这会起作用,但我有一些奇怪的符号用于我想保留的设置操作和 CalcTextWidth 完全失败。
我试过了:

  • ParentFont := true and false;
  • Flat := true and false;
  • Parent.Font := Whatever;

  • 我只想说,我已经尝试了所有的老把戏。唯一有效的方法就是删除 XP Manifest(我是否提到过这是 Delphi 7)。这不是一个选项,因为今年某个时候我们将把所有东西都移植到 D2009 上,而那……这不是一个选项!
    编辑
    真正奇怪的是,使用 TFrame 和 DFM,它可以工作(即使使用古老的编译器)。使用 TPanel 它不起作用。
    TPanel(或 TCustomPanel,两者都不起作用)上的主题和 TFrame 上的主题之间一定存在一些差异。
    另外,我在按钮和 TPanel 之间有一个 TGroupBox。也许这就是问题所在。我可以很容易地改变它。
    编辑 2
    使用按钮、extctrls、stdctrls
    (对于 Delphi 7,将 XPManifest 放在您的表单上)
    procedure TForm1.FormCreate(Sender: TObject);
    var
    Panel : TPanel;
    Grp : TGroupBox;
    Btn : TSpeedButton;
    begin
    Panel := TPanel.Create(Self);
    Panel.Parent := self;
    Panel.Align := alClient;

    Grp := TGroupBox.Create(Panel);
    Grp.Parent := Panel;
    Grp.Align := alClient;

    Btn := TSpeedButton.Create(Grp);
    Btn.Parent := Grp;

    Btn.Width := 117;
    Btn.Font.Name := 'Symbol';
    Btn.Caption := 'Here is some text';


    end;
    在 Windows XP 中很好,在 2008 Server R2 上尝试过,只显示粗体无字体。
    我在中间没有 Group Box 的情况下尝试了这个,但它似乎可以工作。
    (使用框架进行操作,但是要发布的代码太多)

    最佳答案

    Delphi 7 于 2002 年 8 月发布。Vista 于 2007 年问世,Windows 7 于 2009 年问世。我认为期望 2002 年的编译器和开发系统能够与 Vista/7 中的所有新内容一起工作有点期待。升级,您可能会看到一切正常。

    当然,升级编译器,特别是对于大型应用程序,绝非易事。

    我对你有感觉,但我不会称它为 VCL 中的错误。

    关于delphi - 为什么我不能在 Delphi 7 中启用主题的 TSpeedButtons 上设置字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3969552/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com