Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ClientDataSet image field yükleme (DataSnap)
#1
Merhaba

Android de datasnap ile veri çekiyorum. Resim çekme zorunluluğum oluşu.
Clientdataset fieldbyname('RESIM').savetostream  özlliği bulunmyor.
Clientdataset nesnesindeki resmi image nesnesine alamadım.

Tavsiyeniz var mı? İyi Çalışmalar.
Cevapla
#2
Merhaba,
Blob alanı TBlobField tipine dönüştürmeye zorlayarak, yapabilirsiniz.
TBlobField(DatasetAdı.FieldByName('RESIM')).SaveToStream(StreamAdı);
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
#3
(20-07-2019, Saat: 13:25)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,
Blob alanı TBlobField tipine dönüştürmeye zorlayarak, yapabilirsiniz.
TBlobField(DatasetAdı.FieldByName('RESIM')).SaveToStream(StreamAdı);

Merhaba

Açıkcası yardımınız olmasa çözümü bulamazdım. Teşekkür ederim.
Şu anda hiçbir hata vermemesine rağmen listview de image göremiyorum.

aldığım image önce imagelist e alıp listview item a image index numarsı veriyorum.
list e text olarak liste yüklenirken imagler gelmiyor.
Listview item apperance>item özelliği imagelistitem olarak ayarlı ama imagelerı gösteremiyorum.


procedure Tfrmana.Grup_List_Doldur;
      var
vItem:TListViewItem;
ms:TmemoryStream;
i:integer;
begin
i:=0;
ms:=TmemoryStream.Create;

try
try
  datam.SQLConUrun.Connected:=true;
  with DataM.cdsUrun do
  begin
    active:=false;
    CommandText:='SELECT ID,ADI,RESIM FROM GRUP ORDER BY ADI';
    Active:=true;
    while not eof do
    begin
      vItem:=ListView1.Items.Add;
      vItem.Text:=FieldByName('ADI').AsString;
      r:=imgGrup.Source.Add  ;
     // ShowMessage('r:=imgGrup.Source.Add  ;');
      TBlobField(DataM.cdsUrun.FieldByName('RESIM')).SaveToStream(ms);
     // ShowMessage('blobfield');
      //FieldByName('RESIM').Assign(ms);
      ms.Position:=0;

      r.MultiResBitmap.LoadItemFromStream(ms,i+1);
     // ShowMessage('r.MultiResBitmap.LoadFromStream(ms);');
      vItem.ImageIndex:=i;

      i:=i+1;
      next;
    end;
  end;

except on E: Exception do
 ShowMessage(e.Message);
end;
finally
  ms.Free;
end;

end;
Cevapla
#4
Merhaba,
ListViewItem'ın icon özelliğine stream'dan doğrudan bir veri atayabilirsiniz.
Örneğin, 
vItem.Icon.LoadFromStream(ms);
Kodunuzun ilgili kısmı en sade şekilde aşağıdaki gibi olmalıdır.
  while not eof do
  begin
    vItem := ListView1.Items.Add;
    vItem.Text := FieldByName('ADI').AsString;
    TBlobField(datam.cdsUrun.FieldByName('RESIM')).SaveToStream(ms);
    vItem.Icon.LoadFromStream(ms);
    next;
  end;
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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  MacOS Store Uygulama Yükleme nguzeller 0 35 15-08-2019, Saat: 13:57
Son Yorum: nguzeller
  Resimi spinner yada image combo box da gösterme 41linea41 1 92 18-07-2019, Saat: 21:28
Son Yorum: narkotik
  Datasnap Bindvisual sorunu hakanharbeli 3 329 13-06-2019, Saat: 23:57
Son Yorum: hakanharbeli
  ListView'den İmage'e Aktarma ? Mr.Developer 2 228 29-05-2019, Saat: 10:56
Son Yorum: Mr.Developer
  Circle - İmage Sorunu ? Mr.Developer 4 364 15-05-2019, Saat: 08:57
Son Yorum: Mr.Developer



Konuyu Okuyanlar: 1 Ziyaretçi