继承Firemonkey形式后找不到资源

时间:2019-04-12 16:50:58

标签: delphi firemonkey

请帮助。我正在开发一个长期的Delphi项目,该项目具有几种想要调整大小的firemonkey形式。我将与调整大小相关的代码放入从TForm继承的新表单中,并将现有的表单更改为从新表单继承。这似乎可行,但现在在编译期间失败,并显示诸如“未找到资源TLessonStudent”的错误 令人震惊的是,将代码恢复为以前的状态并不能消除错误。怎么了?有什么方法可以创建编译器想要的资源文件?谢谢!艺术

我尝试在不同的地方添加和删除编译器指令,例如{$ R * .DFM}。我还尝试将代码恢复到以前的样子,我的表单再次直接来自TForm。还是一样的错误。

以下是声明新顶层表单的方式:

type
  TFluentTutorForm = class(TForm)
  protected
    ...
    resizableLayout: TScaledLayout;
    procedure FormCreate(Sender: TObject);
  private
    ...
    function getScreenSize(var retWidth: integer; var retHeight: integer): boolean;
  public
  end;  //TFluentTutorForm

var
  fluentTutorForm: TFluentTutorForm;

implementation

{$R *.fmx}

这是我的旧表格之一,修改为从上面的表格降序

type
  TLessonStudent = class(TFluentTutorForm)
    ...
    procedure FormCreate(Sender: TObject);
  private
    unitTester:  IftUnitTester;
  public
  end;  //TStudentForm

var
  studentForm: TLessonStudent; 

implementation

{the formCreate method shown above calls "inherited formCreate" on it's 
new parent, shown at top}

这是创建表单的项目代码的一部分:

{$R *.res}

begin
  Application.Initialize;
  Application.FormFactor.Orientations := [TFormOrientation.Portrait];//  InvertedPortrait];
  Application.CreateForm(TlessonStudent, studentForm); //<here!!
  Application.CreateForm(TClientModule1, ClientModule1);
  Application.CreateForm(TDataModule1, DataModule1);
  Application.CreateForm(TmemTableForm, memTableForm);
  Application.Run;
end.

1 个答案:

答案 0 :(得分:0)

没关系,我明白了。答案是在子窗体中具有指令{$ R * .FMX},而在新的父窗体中却没有。

我仍然不知道为什么这些魔术符号必须是这种方式,但这确实成功了。 :)

相关问题