![]() |
|
Klasör İçindeki Resimleri Gösterme - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: Klasör İçindeki Resimleri Gösterme (/showthread.php?tid=7666) |
Klasör İçindeki Resimleri Gösterme - sadoal351 - 29-03-2024 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. Klasör İçindeki Resimleri Gösterme - frmman - 29-03-2024 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.
Klasör İçindeki Resimleri Gösterme - sadoal351 - 29-03-2024 @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 Klasör İçindeki Resimleri Gösterme - frmman - 30-03-2024 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.
Klasör İçindeki Resimleri Gösterme - sadoal351 - 01-04-2024 @frmman Çok Teşekkür Ederim. İşimi Gördü. Elinize Sağlık Klasör İçindeki Resimleri Gösterme - sadoal351 - 13-04-2024 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 |