Delphi: criação e exibição de imagem no formulário Criar
Pergunta
Sendo bastante um novato, eu só tive a minha primeira pergunta respondida ( Delphi: TImage.Create provoca violação de acesso ) para colidir imediatamente em um novo problema:
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;
Quando eu exibir este formulário
procedure TMainForm.MyImageClick(Sender: TObject);
begin
SelectorForm.Visible := True;
end;
as imagens não são visíveis. O que estou fazendo de errado?
Eu quero agradecer a todos por seus conselhos. Esperemos que, fazendo perguntas elementares ajuda os outros a evitar pedir-los no futuro: -)
Solução
Defina a propriedade Parent de todos os componentes de imagem para o formulário que os contém.
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;
Outras dicas
Bem, acho que você tem que adicionar os componentes TImage
individuais à lista de controle do formulário atual?
Isso significa: só porque você está criando um TImage
em código não significa que ele é realmente adicionado para controles do formulário. Você vai ter que fazer isso em código -. No entanto, eu não tocou Delphi em um par de anos, então eu não pode fornecer qualquer código agora