2009-06-24 2 views
4

에 TImage의 표시, 난 그냥 바로 새로운 문제에 부딪하기 (Delphi: TImage.Create causes Access violation) 내 첫 번째 질문에 대답 했어 :델파이 : 생성 및 아주 초보자 인 FormCreate

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; 

이미지가 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

모두에게 감사드립니다. 다행히 기본 질문을하면 다른 사람들이 나중에 묻지 않아도됩니다.

+0

제 계산이 맞으면 20 만 번째입니다. :) – cletus

답변

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; 
1

글쎄, 난 당신이 현재 양식의 제어 목록에 하나의 TImage 구성 요소를 추가 할 필요가 있다고 가정?

즉, TImage을 코드로 작성한다고해서 실제로 폼의 컨트롤에 추가된다는 의미는 아닙니다. 코드에서 그렇게해야 할 것입니다. 그러나 저는 몇 년 안에 델파이를 사용하지 않았으므로 지금 당장은 코드를 제공 할 수 없습니다.