我怎么知道是否创建了用户定义组件?

azr*_*l11 2 delphi components delphi-7

我使用以下代码在过程中创建备忘录:

  Global_MemoIni := TMemo.Create(Conf);
  Global_MemoIni.Parent := Conf;
  Global_MemoIni.Visible := False;
  Global_MemoIni.Align := alClient;
  Global_MemoIni.WordWrap := False;
Run Code Online (Sandbox Code Playgroud)

当我再次调用该过程时,它再次创建global_memoini.
我如何知道组件是否已创建,因此我不需要再次调用它?

更新:我可以使用Global_MemoIni.Free上面的创建代码,以便下次创建Global_memoini一次...但我想知道这是否创建...

谢谢

joh*_*nny 5

您可以检查Global_MemoIni是否为Nil,如果是,则创建TMemo.否则它已经存在,你可以使用Free或释放它FreeAndNil.如果您使用免费,请注意分配NilGlobal_MemoIni.如果不这样做,则无法使用Global_MemoIni <> Nil支票.

  • 我建议不要直接检查nil,而是使用`if Assigned(GlobalMemoIni)then`.在更大的源代码库中找到这些检查会更容易,并且还有"正面"测试而不是"非xxx"测试的额外奖励. (2认同)