Delphi 动态创建窗体,锁定窗口赋值

 Var

    TempForm: array of TForm2;

procedure TForm1.Button2Click(Sender: TObject);
Var
  i:Integer;
  bNew:Boolean;
begin
 bNew:=True;
  For i:=Low(TempForm) to High(TempForm) do
    begin
       IF TempForm[i].Caption=Trim(Edit1.Text) then
          begin
             TempForm[i].Show;
             bNew:=False;
             Exit;
           end;
           bNew:=True;
      end;
    IF bNew then
      begin
        SetLength(TempForm,Length(TempForm)+1);  //给数据增加一个值
        TempForm[High(TempForm)]:=TForm2.Create(nil); //创建窗体
        TempForm[High(TempForm)].Caption:=Trim(Edit1.Text); //窗体Caption赋于值,以便锁定
        Self.CheckListBox1.Items.Add(Trim(Edit1.Text));
        TempForm[High(TempForm)].Show;     //数组的最高值便是当前所创建的窗体
       end;
end;

procedure TForm1.Button3Click(Sender: TObject);
Var
 i:integer;
 bName:String;
begin
  For I:=0 to CheckListBox1.Count-1 do
    begin
       if CheckListBox1.Selected[i] then
          bName:=CheckListBox1.Items.Strings[i];
     end;
  For I:=Low(TempForm) to high(TempForm) do
    begin
      if TempForm[i].Caption=bName then
        begin
           TempForm[i].Edit1.text:=Edit2.text;
         end;
      end;
end;