FMX下与VCL下遍历控件的差异问题

一直都在VCL下写桌面程序,习惯了VCL的语句。

采用FMX写个APP要遍历一次窗体的复选框checkbox有多少处于选中状态,并显示出来。

用Vcl的代码是:

 

  
procedure TForm1.btn1Click(Sender: TObject);
var
  i: Integer;
  varstr: string;
begin
  with Form1 do
    for i := 0 to ComponentCount - 1 do
    begin
      if ((Components[i] is TCheckBox).Checked = True) then
      begin
        varstr := varstr+ (Components[i] is TCheckBox).Caption;
      end;
    end;
  ShowMessage(varstr);
end;

但是在FMX下这些代码是通不过的,有些属性已经发生了变化。

最终把代码修改成如下:

  
procedure TForm1.btn1Click(Sender: TObject);
var
  i: Integer;
  varstr: string;
begin
  with Form1 do
    for i := 0 to ComponentCount - 1 do
    begin
      if (Components[i] is TCheckBox) and
        ((Components[i] as TCheckBox).IsChecked = True) then
      begin
        varstr := varstr + (Components[i] as TCheckBox).Text + #13;
      end;
    end;
  ShowMessage(varstr);
end;
分享到:

0 条评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

昵称

沙发空缺中,还不快抢~