创建TFDQuery动态消失

时间:2016-09-22 02:24:54

标签: delphi

我正在使用Delphi Berlin 10.1

当我创建TFDQuery时,似乎无法使用Findcomponent在我的代码中访问它。

创作

procedure TDataModule1.QuVerConAfterOpen(DataSet: TDataSet);
begin
  QuVerCon.First;
  while not QuVerCon.Eof do
  begin
    if QuVerCon.FieldByName('Table').AsString <> 'versioncontrol' then
    begin
      TFDQuery.Create(self).Name := 'Qu' + QuVerCon.FieldByName('Table').AsString;
      with TFDQuery(FindComponent('Qu' + QuVerCon.FieldByName('Table').AsString)) do
      begin
        Connection := SqlConn;
        Open('select * From ' + QuVerCon.FieldByName('Table').AsString);
      end;
    end;
    QuVerCon.Next;
  end;
  FMMain.Filter1.FormatScrn(FMMain.Filter1);
end;

断开连接

procedure TDataModule1.SqlConnBeforeDisconnect(Sender: TObject);
var
  Tbl: TFDQuery;
begin
  with QuVerCon do
  begin
    First;
    if FieldByName('Table').AsString <> 'versioncontrol' then
    begin
      Tbl := TFDQuery(FindComponent('Qu' + FieldByName('Table').AsString));
      if Assigned(Tbl) then
        TFDQuery(FindComponent('Qu' + FieldByName('Table').AsString)).Free;
    end;
    Next;
  end;

  QuVerCon.Close;
end;

代码跳过&#34;如果已分配(Tbl)则&#34;因为它无法找到它 我哪里错了?

是一种显示带有数据模块组件列表的消息框的方法,以便我可以检查何时消失?

0 个答案:

没有答案