Delphi:&の作成FormCreateでTImageを表示する
質問
かなり初心者なので、最初の質問に答えました( 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に触れていないので、私は今のところコードを提供できません。
所属していません StackOverflow