Comment créer dynamique des contrôle TImage ?
Je voudrais créer sur une Form autant de TImage que d'image se trouvant dans un répertoire donné. Comment faire car je ne suis pas un expert des objets. Auriez-vous une piste ?
En effet tu peux tout à fait créer dynamiquement des Timages sur ta Form sans les avoir au préalable collé dessus sous l'IDE de Delphi.
Il suffit d'abord de créer l'objet (ou instance de la classe (du composant TImage)), puis d'associer le nouvel objet à sa Form Mere :
//////////////////////////////////////////////
var tabImageExemple : TImage;
begin
ImageExemple := TImage.Create(...);
FormPrincipal.AddComponent(ImageExemple);
end;
////////////////////////////////////////////
Ensuite, si tu veux en avoir plusieurs, utilise ou un tableau (array) ou une liste dynamique ( un TList par exemple ).
Mais même si c'est plus simple de faire plusieurs TImage pour faire ton Browser, je te conseille pas de faire comme ca... Trop lourd...
Utilise plutot un seul TImage (ou du moins un TCanvas ) et avec les API windows essaye d'y incruster plusieurs images, c'est pas si compliqué que ca...
Bon courage !
Salut, svp .. je veux créer des composants ( je l'ai déjà fais ) mais dans une autre form ( QReport ) pour être précis, c'est des 'QR CODE' .
le Button est dans la 'Form1', et quand je clique je veux les image dans la feuille d'impression , esque c'est possible ? Merçi.
// Un tableau d'images
Image : Array[1..5] Of TImage;
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1:=TImage.Create(Self);
Image1.Parent:=Form1;
Image1.Top:=0;
Image1.Left:=0;
Image1.Width:=100;
Image1.Height:=100;
Image1.AutoSize:=True;
Image1.Visible:=True;
If OpenDialog1.Execute Then
Image1.Picture.BitMap.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
I : integer;
begin
For I:= 1 To 5 Do
begin
// Créer les 5 Images
Image:=TImage.Create(Self);
// Parmétrer les Images
With Image[I] Do
begin
Parent:=Form1;
Top:=0;
Left:=0;
Width:=100;
Height:=100;
AutoSize:=True;
Visible:=True;
end;
end;
// Utiliser les images ici ou ailleur dans le programme
// La variable Image est globale.
//................
//................
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var
I : Integer;
begin
// Libérer la memoire des images qui ont été créée.
If Image1 <> Nil Then Image1.Free;
For I:= 1 To 5 Do If Image[I] <> Nil Then Image[I].Free;
end;
le Button est dans la 'Form1', et quand je clique je veux les image dans la feuille d'impression , esque c'est possible ? Merçi.