【问题标题】:Delphi Firemonkey creating TExpanders and TLabels at runtimeDelphi Firemonkey 在运行时创建 TExpanders 和 TLabels
【发布时间】:2019-05-09 07:36:56
【问题描述】:

使用 Rad Studio 10.3

我正在基于 FireDAC 查询在运行时创建 TExpanders。但是我遇到了一个问题,将标签的父级设置为我刚刚创建的扩展器。

我正在使用以下内容来创建组件

procedure TfrmMain.FormCreate(Sender: TObject);
var
  i: integer;
begin
  // Populate previous saved conversions stringgrid
  FDQuery1.SQL.Clear;
  FDQuery1.Close;
  FDQuery1.SQL.Add('SELECT convert from conversions');
  FDQuery1.Open;
  i := 1;
  while not FDQuery1.Eof do
  begin
    // Create Expanders here to display database query to user
    exp := TExpander.Create(Self);
    exp.Parent := layoutDBDisplay;
    exp.Align := TAlignLayout.Top;
    exp.Name := 'dbExp' + i.ToString;  
    exp.Height := 100;
    exp.TextSettings.Font.Size := 14;
    exp.TextSettings.Font.Style := [TFontStyle.fsBold];

    // Create TLabel inside of above expander
    lab := TLabel.Create(Self);
    lab.Parent := TExpander;
    lab.Align := TAlignLayout.Top;
    lab.Name := 'dbResLabel' + i.ToString;
    inc(i);
    FDQuery1.Next;
  end;
  FDQuery1.Close;

end;

问题出在这一行

lab.Parent := expName;

显然由于以下原因,上面的内容不会编译

[dcc32 Error] frmConverter.pas(266): E2010 Incompatible types: 'TFmxObject' and 'class of TExpander'  

有没有简单的解决办法?

【问题讨论】:

    标签: delphi components firemonkey


    【解决方案1】:

    你的线路

    lab.Parent := TExpander;
    

    应该是

    lab.Parent := Exp;
    

    【讨论】:

    • 哦!其实很简单。非常感谢
    猜你喜欢
    • 2015-03-16
    • 1970-01-01
    • 2012-06-23
    • 2023-03-21
    • 2018-12-28
    • 2010-11-03
    • 2016-01-28
    • 2013-02-21
    • 2011-12-02
    相关资源
    最近更新 更多