【问题标题】:Incompatible types: 'TFormStyle' and 'TTeeFontStyle'不兼容的类型:“TFormStyle”和“TTeeFontStyle”
【发布时间】:2013-09-24 01:36:36
【问题描述】:

我用 Delphi 2009 编写了代码,并将我的 CodeGear Delphi 更新到 XE2。它与 Delphi 2009 完美编译,但现在不行了!它给了我这个错误:

[DCC 错误] 不兼容的类型:“TFormStyle”和“TTeeFontStyle”! 我尝试创建一个新的 Vcl Forms Application 并编写了生成此错误的命令:

Form1.FormStyle := FsNormal;

它也编译得很完美,我不知道为什么会这样,虽然我相信我的语法没有问题,请帮忙,谢谢。 这是未编译的代码:

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
begin
KeyPreview := True;
case Msg.message of
WM_KEYDOWN:
  if Msg.wParam = 27 then
  begin
    form1.Menu:=mainmenu1;
    fullscreen1.Checked:=false;
    form1.formstyle:=fsnormal;
    form1.BorderStyle:=bssizeable;
  end
  else
  if msg.wParam=VK_f5 then
  begin
    browser.Navigate(memo2.Text);
  end;
  end;
end;
end;

【问题讨论】:

    标签: delphi delphi-xe2 delphi-2009


    【解决方案1】:

    与“use”子句中的某些 TeeChart 模块存在名称冲突。您可以编写完整的标识符名称来解决此问题:

    formstyle := Vcl.Forms.fsnormal;
    

    附:请注意,我还删除了 "form1." 限定符。通常它在表单方法体中不是很有用,有时甚至有害(假设您有多个 TForm1 实例)

    【讨论】:

      【解决方案2】:

      除了MBo的答案,我觉得还是用的比较好:

      Self.formstyle := Vcl.Forms.fsnormal;
      

      当您有多个 TForm1 实例时,这将始终调整您当时正在使用的实例。

      【讨论】:

      • 为什么一个答案重复了答案中的支点,实际上也回答了这个问题,得到选票?
      • Sertac,因为我没有足够的代表对之前的答案发表评论,这是我唯一的选择(编辑 Mbo 答案的尝试被拒绝)。我还看到 MBo 更新了他的答案。
      • @RFerwerda - Mbo 的答案在修改之前就有了这些信息。我不是问你为什么发布答案。我想知道为什么您的答案会获得选票,尽管它没有为现有答案添加任何内容。我的问题不是特别针对你的..
      【解决方案3】:

      用它来自的特定枚举类型限定值:

      Form1.FormStyle := TFormStyle.fsNormal;
      

      甚至:

      Form1.FormStyle := Vcl.Forms.TFormStyle.fsNormal;
      

      【讨论】:

        猜你喜欢
        • 2014-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多