Merhabalar,
Bilgisayarda belirli klasörde müşteri resimler mevcuttur. ( Resim Yolu : C:\Resimler\MusteriKodu\....,.jpeg )
Her Müşterinin resim klasörü içinde resim sayıları farklılık gösteriyor. ( 3 - 5 - 10 - 15 adet )
Image1.Picture.LoadFromFile(Dosya Yolu); kodu ile tek tek resim gösterebiliyorum.
Tek seferde klasör içinde kaç tane resim varsa ekranda göstermek istiyorum.
Bunun için yardımcı olur musunuz.
Aşağıdaki örnek kullanımı için form üzerine bir adet buton ve panel nesnesi yerleştirin. Resimler panel içerisinde kareler şeklinde gösterilecektir.
Uses kısmına aşağıdakileri eklemeyi unutmayınız.
Uses
Vcl.ExtCtrls,
System.IOUtils,
system.Types,
Vcl.Imaging.jpeg;
Tüm Kodlar
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
Vcl.ExtCtrls,
System.IOUtils,
system.Types,
Vcl.Imaging.jpeg;
type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Files: TStringDynArray;
i: Integer;
Image: TImage;
LeftPos, TopPos: Integer;
begin
//varsa daha önceki resimleri kaldır.
for i := Panel1.ControlCount - 1 downto 0 do Panel1.Controls[i].Free;
Files := TDirectory.GetFiles('C:\8\img\', '*.jpg');
LeftPos := 10;
TopPos := 10;
for i := Low(Files) to High(Files) do
begin
Image := TImage.Create(Self);
Image.Parent := Panel1;
Image.Left := LeftPos;
Image.Top := TopPos;
Image.Width := 100;
Image.Height := 100;
Image.Picture.LoadFromFile(Files[i]);
image.Stretch := true;
image.Center := true;
LeftPos := LeftPos + 110;
if LeftPos + 100 > panel1.Width then
begin
LeftPos := 10;
TopPos := TopPos + 110;
end;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var i:integer;
begin
for i := Panel1.ControlCount - 1 downto 0 do Panel1.Controls[i].Free;
end;
end.

@
frmman Teşekkürler İşimi Gördü.
Resim üzerine Çift Tıklama ile Resmi Büyütme imkanımız var mı? Kullanıcı Resmi detaylı görsün.
Şimdiden Teşekkürler
Aşağıdaki gibi bir düzenleme size yol gösterecektir. Form üstüme bir adet Timage nesnesi ilave edin ve ismini ImageBig olarak değiştirin.
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls,
System.IOUtils,
system.Types,
Vcl.Imaging.jpeg;
type
TForm2 = class(TForm)
Button1: TButton;
Panel1: TPanel;
ImageBig: TImage;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure OnimageDblClik(sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure Tform2.OnimageDblClik(sender : TObject);
begin
if (sender is Timage) then
ImageBig.Picture.Graphic := (sender as Timage).Picture.Graphic;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
Files: TStringDynArray;
i: Integer;
Image: TImage;
LeftPos, TopPos: Integer;
begin
// büyük resim
ImageBig.Picture.Graphic := nil;
ImageBig.Center := true;
ImageBig.Proportional := true; // en boy oranını koru
//varsa daha önceki resimleri kaldır.
for i := Panel1.ControlCount - 1 downto 0 do Panel1.Controls[i].Free;
Files := TDirectory.GetFiles('C:\8\img\', '*.jpg');
LeftPos := 10;
TopPos := 10;
for i := Low(Files) to High(Files) do
begin
Image := TImage.Create(Self);
Image.Parent := Panel1;
Image.Left := LeftPos;
Image.Top := TopPos;
Image.Width := 100;
Image.Height := 100;
Image.Picture.LoadFromFile(Files[i]);
Image.Proportional := true; // en boy oranını koru
Image.Center := true;
Image.OnDblClick := OnimageDblClik; // dblClick event
LeftPos := LeftPos + 110;
if LeftPos + 100 > panel1.Width then
begin
LeftPos := 10;
TopPos := TopPos + 110;
end;
end;
end;
procedure TForm2.FormDestroy(Sender: TObject);
var i:integer;
begin
for i := Panel1.ControlCount - 1 downto 0 do Panel1.Controls[i].Free;
end;
end.

Merhabalar,
Listelenen resimleri küçültüp büyütmek için ne yapabiliriz.
A4 Yazı boyutunda olduğu zaman büyütmek veya küçültmek gerekiyor.
iyi çalışmalar