Delphi:在FormCreate上创建和显示TImage

Mik*_*ail 4 delphi timage delphi-7

作为一个新手,我刚刚回答了第一个问题(Delphi:TImage.Create导致访问冲突)立即遇到一个新问题:

procedure TSelectorForm.FormCreate(Sender: TObject);
var
  Loop: Byte;
begin
  for Loop := 1 to 10 do
  begin
    ArrayOfImages[Loop] := TImage.Create(SelectorForm);
    MainForm.MyImageList.GetBitmap(Loop - 1, ArrayOfImages[Loop].Picture.Bitmap);
    ArrayOfImages[Loop].Top := ...
    ArrayOfImages[Loop].Left := ...
    ArrayOfImages[Loop].Enabled := True;
    ArrayOfImages[Loop].Visible := True;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

当我显示这个表格

procedure TMainForm.MyImageClick(Sender: TObject);
begin
  SelectorForm.Visible := True;
end;
Run Code Online (Sandbox Code Playgroud)

图像不可见.我究竟做错了什么?

我要感谢大家的建议.希望,提出基本问题有助于其他人在将来避免询问他们:-)

mgh*_*hie 12

将所有图像组件的Parent属性设置为包含它们的表单.

procedure TSelectorForm.FormCreate(Sender: TObject);
var
  Loop: Byte;
begin
  for Loop := 1 to 10 do
  begin
    ArrayOfImages[Loop] := TImage.Create(SelectorForm);
    MainForm.MyImageList.GetBitmap(Loop - 1, ArrayOfImages[Loop].Picture.Bitmap);
    ArrayOfImages[Loop].Top := ...
    ArrayOfImages[Loop].Left := ...
    ArrayOfImages[Loop].Visible := True;
    ArrayOfImages[Loop].Parent := SelectorForm;
  end;
end;
Run Code Online (Sandbox Code Playgroud)