4

かなり初心者なので、最初の質問に答えてもらいました ( Delphi: TImage.Create cause Access violation ) すぐに新しい問題にぶつかりました:

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;

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

皆さんのアドバイスに感謝したいと思います。うまくいけば、基本的な質問をすることで、他の人が将来それらを尋ねるのを避けるのに役立ちます:-)

4

2 に答える 2

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;
于 2009-06-24T07:32:44.367 に答える
1

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

つまりTImage、コード内で を作成しているからといって、それが実際にフォームのコントロールに追加されるわけではありません。これはコードで行う必要がありますが、ここ数年 Delphi に触れていないため、現時点ではコードを提供できません。

于 2009-06-24T07:35:45.547 に答える