Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Fotoğraf Listeleme
#1
ListView ' dosyadaki resimleri listeliyorum 
Listview ' e eklenen resimleri seçtikçe İmage nesnesinde nasıl gösterebilirim ? 

function TForm1.GetHedef(): String;
begin
{$IFDEF ANDROID}
 Result := TPath.Combine(TPath.GetSharedPicturesPath, DosyaAdi);
{$ELSE}
{$IFDEF IOS}
 Result := TPath.GetHomePath + '/Documents/' + DosyaAdi;
{$ELSE}
 Result := TPath.Combine(TPath.GetTempPath, DosyaAdi);
{$ENDIF}
{$ENDIF}
end;


procedure TForm1.ListView1ItemClick(const Sender: TObject;
 const AItem: TListViewItem);
begin
image1.Bitmap.Assign(AItem.BitmapRef);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 Konum: string;
 AramaSecenegi: TSearchOption;
begin
 Konum := TPath.GetDirectoryName(GetHedef());
 if not TDirectory.Exists(Konum) then
 begin
   ShowMessage('Belirtilen konum bulunamadı');
   Exit;
 end;
 { ilk Klasörden başlayarak en iç klasöre kadar ardaşık tüm dosyaları sıralar. }
 AramaSecenegi := TSearchOption.soAllDirectories;
 // LSearchOption := TSearchOption.soTopDirectoryOnly; //Ana klasör ve dosyaları listeler (Alt Klasörleri listelemez)
 ListView1.Items.Clear;

for Konum in TDirectory.GetFiles(Konum, '*.png', AramaSecenegi) do
   With ListView1.Items.Add do
   begin
     Text := (ListView1.Items.Count).ToString + ' - ' + TPath.GetFileName(Konum);
     Detail := Konum;
end;
 end;
end.


GALİBA BU KODU DEĞİŞTİRMEM GEREKİYOR YARDIMLARINIZI BEKLİYORUM 


procedure TForm1.ListView1ItemClick(const Sender: TObject;
 const AItem: TListViewItem);
begin
image1.Bitmap.Assign(AItem.BitmapRef);
end;
Cevapla
#2
yardım edebilecek varmı
Cevapla
#3
Merhaba. Listview resmin isimlerini aktarıyorsan, resmin ilgili konumunuda eklemen lazım. Sadece visible hide yapman gerek. Sonra hangi resmi seçtiysen o item indexinden ilgili konumu imageye vererek gösterirsin.
WWW
Cevapla
#4
(12-05-2017, Saat: 17:46)AliZairov Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba. Listview resmin isimlerini aktarıyorsan, resmin ilgili konumunuda eklemen lazım. Sadece visible hide yapman gerek. Sonra hangi resmi seçtiysen o item indexinden ilgili konumu imageye vererek gösterirsin.
Konum olarak belirtilen değil mi hocam imageye konum aktarımını nasıl yapabilrim
Cevapla
#5
(12-05-2017, Saat: 17:08)Paranoyaq Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olyardım edebilecek varmı

Merhaba,
Yanlış hatırlamıyorsam, bu projenizde ListView'in Detail alanında dosya adını tutuyorsunuz. 
Bu durumda Image nesnesine yüklemek istediğiniz resmi bulunduğu Path'ten yükleyebilirsiniz.
Örnek vermek gerekirse;
Image1.Bitmap.LoadFromFile(ResimklasörünüzünYolu+ListView1.Items[ListView1.ItemIndex].Detail);
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#6
(12-05-2017, Saat: 22:23)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(12-05-2017, Saat: 17:08)Paranoyaq Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olyardım edebilecek varmı

Merhaba,
Yanlış hatırlamıyorsam, bu projenizde ListView'in Detail alanında dosya adını tutuyorsunuz. 
Bu durumda Image nesnesine yüklemek istediğiniz resmi bulunduğu Path'ten yükleyebilirsiniz.
Örnek vermek gerekirse;
Image1.Bitmap.LoadFromFile(ResimklasörünüzünYolu+ListView1.Items[ListView1.ItemIndex].Detail);
Listeleme kodunda hata var galiba
Hocam kodu kullanamadım hangi dosya yolunu kullansam aynı resimleri listeliyor Yada hiç listelemiyor
Listelenen resimlere tıklanınca da
" Loading bitmap failed (/storage/emulated/0/Android/data/com.embarcadero.Project1/Files/DCIM/storage/emulated/0/Android/data/com.instagram.android/files/decors/resim.png "
tarzında hata veriyor
Cevapla
#7
Vermiş olduğum örnekte, Resimler klasörünüz ile dosya adını birleştirmeniz ve Image nesnesinde bu değeri Load etmeniz gerekiyordu.
Hata mesajına göre iki farklı Klasör dizinini birleştiriyorsunuz;

1- /storage/emulated/0/Android/data/com.embarcadero.Project1
2- /Files/DCIM/storage/emulated/0/Android/data/com.instagram.android/files/decors/resim.png

LoadFromFile metoduna eklemiş olduğunuz parametrenin 1. kısmıproje klasörünüzü gösteriyor. Eklediğiniz 2. kısım ise MikroSD kartınızdaki bir klasör bölümü ve resim dosyası.
Bu metod (LoadFromFile)'a göndermiş olduğunuz ilk (+ işaretinden önceki kısım) bölümü eklemeyin. Yalnızca 2. kısım (+ işaretinden sonraki) kalsın.
Çünkü ikinci kısım Path'i doğru görünüyor.
ListView'e her tıklamada aynı resim geliyorsa; ListView elemanlarını oluştururken değer olarak hep aynı yolu veriyorsunuzdur.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#8
Karşılaştığım sorun : '*.png*' kısmından kaynaklanıyormuş halletim hocalar Teşekkürler.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  listeleme Dostk 3 179 24-01-2018, Saat: 16:20
Son Yorum: Dostk
  Resim Listeleme Paranoyaq 13 490 02-01-2018, Saat: 21:25
Son Yorum: Paranoyaq
  Listeleme Paranoyaq 14 842 15-05-2017, Saat: 10:09
Son Yorum: edo
  Fotoğraf çekmek Paranoyaq 1 312 11-05-2017, Saat: 16:39
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi