質問

かなり初心者なので、最初の質問に答えました( 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;

このフォームを表示するとき

procedure TMainForm.MyImageClick(Sender: TObject);
begin
  SelectorForm.Visible := True;
end;

画像は表示されません。私は何を間違えていますか?

アドバイスをくれたすべての人に感謝します。できれば、基本的な質問をすることで、他の人が将来質問するのを避けることができます:-)

役に立ちましたか?

解決

すべての画像コンポーネントの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;

他のヒント

さて、単一の TImage コンポーネントを現在のフォームのコントロールリストに追加する必要があると思いますか?

つまり、コードで TImage を作成しているからといって、実際にフォームのコントロールに追加されるわけではありません。あなたはコードでそれをしなければなりません-しかし、私はここ数年でDelphiに触れていないので、私は今のところコードを提供できません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top