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: -)

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top