Delphi: création & amp; afficher TImage sur FormCreate
Question
En tant que débutant, la première question que je viens de poser a été répondue ( Delphi: TImage.Create fait en sorte que la violation d'accès se heurte immédiatement à un nouveau problème:
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;
Quand j'affiche ce formulaire
procedure TMainForm.MyImageClick(Sender: TObject);
begin
SelectorForm.Visible := True;
end;
les images ne sont pas visibles. Qu'est-ce que je fais mal?
Je tiens à remercier tout le monde pour leurs conseils. Espérons que poser des questions élémentaires aide les autres à éviter de leur poser à l'avenir: -)
La solution
Définissez la propriété Parent de tous les composants d'image sur le formulaire qui les contient.
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;
Autres conseils
Eh bien, je suppose que vous devez ajouter les composants TImage
à la liste de contrôle du formulaire actuel?
Cela signifie que ce n'est pas parce que vous créez un TImage
que celui-ci est réellement ajouté aux contrôles du formulaire. Vous devrez le faire dans le code. Cependant, je n’ai pas touché Delphi depuis quelques années et je ne peux donc pas fournir de code pour le moment.