Merhabalar,
Mobil platform ile ilgili testlere devam ediyorum ve bazı problemler ile karşılaşıyorum.
UNIDAC bağlantı kütüphanesi ile direk olarak uzak sunucuya bağlanabiliyoruz.
- Uzak MSSQL Servera bağlantı yapıyorum.
- 100 Satır 4 kolon bilgi çekiyorum.
- Listview ile dataset birbirine LiveBinding ile bağlıyorum.
- FetchAll özelliği kapalı.
olacak şekilde ayarladım.
Şimdi ilk problem kayıt çekerken bir "Bekleme" ekranı göstermek istiyorum fakat işlem main thread içinde gerçekleştiği için bekleme ekranı görünmüyor.
Ben de ilk olarak TThread ile CreateAnonymousThread metodunu kullanarak denedim bekleme ekranında problem kalmıyor. Kayıtlarda çok güzel geliyor fakat bu sefer de TListview kafasına göre işler yapmaya başlıyor

Tüm liste geliyor bazen sadece tek bir kayıt gösteriyor bazen ise tüm kayıtlar geliyor ama bir tane Fieldın verisi boş geliyor..
Belki Thread saçmalıyordur dedim ve ITask denedim onda da aynı problem var.
TRestRequest de olduğu gibi ExecuteAsync gibi bir method u nasıl kullanara bilirim?
Dipçe;
ListView.beginUpdate - EndUpdate i de denedim.
Dataset lerde DisableControls ve EnableControls de kullandım.
Geliştirme ve Test Ortamı
Delphi Tokyo
Samsung J7 Prime - Android 6.0
Teşekkürler.
İyi çalışmalar.
(31-07-2017, Saat: 10:43)barutali Adlı Kullanıcıdan Alıntı: [ -> ]Merhabalar,
Mobil platform ile ilgili testlere devam ediyorum ve bazı problemler ile karşılaşıyorum.
UNIDAC bağlantı kütüphanesi ile direk olarak uzak sunucuya bağlanabiliyoruz.
- Uzak MSSQL Servera bağlantı yapıyorum.
- 100 Satır 4 kolon bilgi çekiyorum.
- Listview ile dataset birbirine LiveBinding ile bağlıyorum.
- FetchAll özelliği kapalı.
olacak şekilde ayarladım.
Şimdi ilk problem kayıt çekerken bir "Bekleme" ekranı göstermek istiyorum fakat işlem main thread içinde gerçekleştiği için bekleme ekranı görünmüyor.
Ben de ilk olarak TThread ile CreateAnonymousThread metodunu kullanarak denedim bekleme ekranında problem kalmıyor. Kayıtlarda çok güzel geliyor fakat bu sefer de TListview kafasına göre işler yapmaya başlıyor
Tüm liste geliyor bazen sadece tek bir kayıt gösteriyor bazen ise tüm kayıtlar geliyor ama bir tane Fieldın verisi boş geliyor..
Belki Thread saçmalıyordur dedim ve ITask denedim onda da aynı problem var.
TRestRequest de olduğu gibi ExecuteAsync gibi bir method u nasıl kullanara bilirim?
Dipçe;
ListView.beginUpdate - EndUpdate i de denedim.
Dataset lerde DisableControls ve EnableControls de kullandım.
Geliştirme ve Test Ortamı
Delphi Tokyo
Samsung J7 Prime - Android 6.0
Teşekkürler.
İyi çalışmalar.
LiveBindings arkaplanda nasıl bir doldurma işlemi yapıyor incelemedim, bilmiyorum ama; Listview'e thread içinde kendiniz doldurma işlemi yaparken; TThread.Queue metodu ile doldurma işlemini deneyebilir misiniz ;-)
(31-07-2017, Saat: 11:05)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: [ -> ] (31-07-2017, Saat: 10:43)barutali Adlı Kullanıcıdan Alıntı: [ -> ]Merhabalar,
Mobil platform ile ilgili testlere devam ediyorum ve bazı problemler ile karşılaşıyorum.
UNIDAC bağlantı kütüphanesi ile direk olarak uzak sunucuya bağlanabiliyoruz.
- Uzak MSSQL Servera bağlantı yapıyorum.
- 100 Satır 4 kolon bilgi çekiyorum.
- Listview ile dataset birbirine LiveBinding ile bağlıyorum.
- FetchAll özelliği kapalı.
olacak şekilde ayarladım.
Şimdi ilk problem kayıt çekerken bir "Bekleme" ekranı göstermek istiyorum fakat işlem main thread içinde gerçekleştiği için bekleme ekranı görünmüyor.
Ben de ilk olarak TThread ile CreateAnonymousThread metodunu kullanarak denedim bekleme ekranında problem kalmıyor. Kayıtlarda çok güzel geliyor fakat bu sefer de TListview kafasına göre işler yapmaya başlıyor
Tüm liste geliyor bazen sadece tek bir kayıt gösteriyor bazen ise tüm kayıtlar geliyor ama bir tane Fieldın verisi boş geliyor..
Belki Thread saçmalıyordur dedim ve ITask denedim onda da aynı problem var.
TRestRequest de olduğu gibi ExecuteAsync gibi bir method u nasıl kullanara bilirim?
Dipçe;
ListView.beginUpdate - EndUpdate i de denedim.
Dataset lerde DisableControls ve EnableControls de kullandım.
Geliştirme ve Test Ortamı
Delphi Tokyo
Samsung J7 Prime - Android 6.0
Teşekkürler.
İyi çalışmalar.
LiveBindings arkaplanda nasıl bir doldurma işlemi yapıyor incelemedim, bilmiyorum ama; Listview'e thread içinde kendiniz doldurma işlemi yaparken; TThread.Queue metodu ile doldurma işlemini deneyebilir misiniz ;-)
Cevabınız için teşekkür ederim hocam.
Yükleme ekranını gösteriyor ama TAniIndicator donuyor. Neyse buna da şükür.. İlerleyen zamanlarda bunun üstüne gideceğim.
Merhaba,
Bir şey dikkatimi çekti, ama ne @
barutali ne de Tuğrul Bey bundan bahsetmiş. Acaba ben mi gözden kaçırdım, çünkü LiveBinding'ler bildiğim kadarıyla thread safe değil. Zaten UI ile ilgili olduğu için thread safe olması kolay değil. @barutali'nin bahsettiği sorunlar da tam anlamıyla thread safe hataları.
Benim tavsiyem çok basit:
1. Live Binding kullanmayı bırakın

2. Veriler geldikçe thread içinde syncronize ile listview'e ekleme yapın.
İyi çalışmalar
NOT: Livebinding ve mobil işletim sistemlerinde veri tabanına direkt bağlantı kurmak bana biraz işin kolayına kaçmak gibi geldi. Ne zaman işin kolayına kaçmaya kalksam @barutali'nin karşılaştığı bin tane gereksiz sorunla uğraştım. Şimdi tavsiyeleri okuyunca da "biz de biliyoruz, ama üşendik işte" diye geçirdim içimden

Umarım @
barutali üşendiğinden bu sorunlarla boğuşmuyordur

(01-08-2017, Saat: 16:54)Bahadir.Alkac Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
Bir şey dikkatimi çekti, ama ne @barutali ne de Tuğrul Bey bundan bahsetmiş. Acaba ben mi gözden kaçırdım, çünkü LiveBinding'ler bildiğim kadarıyla thread safe değil. Zaten UI ile ilgili olduğu için thread safe olması kolay değil. @barutali'nin bahsettiği sorunlar da tam anlamıyla thread safe hataları.
Benim tavsiyem çok basit:
1. Live Binding kullanmayı bırakın 
2. Veriler geldikçe thread içinde syncronize ile listview'e ekleme yapın.
İyi çalışmalar
NOT: Livebinding ve mobil işletim sistemlerinde veri tabanına direkt bağlantı kurmak bana biraz işin kolayına kaçmak gibi geldi. Ne zaman işin kolayına kaçmaya kalksam @barutali'nin karşılaştığı bin tane gereksiz sorunla uğraştım. Şimdi tavsiyeleri okuyunca da "biz de biliyoruz, ama üşendik işte" diye geçirdim içimden
Umarım @barutali üşendiğinden bu sorunlarla boğuşmuyordur 
Veritabanı benim değil hocam. Kullanacak kişilerde 1433 nolu portu açmakta sıkıntı duymayıp. Benim REST için port açın dediğimde "hedee hödö" dedikleri için bunlarla boğuşuyorum. Şuan asıl projeye açıkçası geçmedim. İlk testlerimi alıyorum. TListview nesnesini elle doldurma yoluna da gittim

Fakat TListItem üzerinde ki nesnelerine FindObjectT ile erişilmesi inanılmaz bir performans düşüşüne sebep oldu.
Bu şekilde en temel kısımlarda bile yaşanılan sıkıntılardan sonra REST için baskı yapmayı planlıyorum.

TRestRequest de bulunan ExecuteAsync metodu tam istediğim işi yapıyor
.
(01-08-2017, Saat: 16:54)Bahadir.Alkac Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
Bir şey dikkatimi çekti, ama ne @barutali ne de Tuğrul Bey bundan bahsetmiş. Acaba ben mi gözden kaçırdım, çünkü LiveBinding'ler bildiğim kadarıyla thread safe değil. Zaten UI ile ilgili olduğu için thread safe olması kolay değil. @barutali'nin bahsettiği sorunlar da tam anlamıyla thread safe hataları.
Benim tavsiyem çok basit:
1. Live Binding kullanmayı bırakın 
2. Veriler geldikçe thread içinde syncronize ile listview'e ekleme yapın.
İyi çalışmalar
NOT: Livebinding ve mobil işletim sistemlerinde veri tabanına direkt bağlantı kurmak bana biraz işin kolayına kaçmak gibi geldi. Ne zaman işin kolayına kaçmaya kalksam @barutali'nin karşılaştığı bin tane gereksiz sorunla uğraştım. Şimdi tavsiyeleri okuyunca da "biz de biliyoruz, ama üşendik işte" diye geçirdim içimden
Umarım @barutali üşendiğinden bu sorunlarla boğuşmuyordur 
Bakın ne yazmışım Bahadır Bey;
Alıntı:LiveBindings arkaplanda nasıl bir doldurma işlemi yapıyor incelemedim, bilmiyorum ama; Listview'e thread içinde kendiniz doldurma işlemi yaparken; TThread.Queue metodu ile doldurma işlemini deneyebilir misiniz ;-)
Yani Listview'i doldurma işlemini kendiniz yapın ve bir thread içinde yapın. Thread içinde yapacağınız için de VCL nesnelerine erişim sırasında güvenli olsun diye TThread.Queue metodunu kullanın demişim ;-) Kısaca, uygulamanın ana thread'i kilitlenmesin diye bir başka thread create edin, o thread içinde datayı nereden alıyorsanız oradan temin edin, döngüye girin ve TThread.Queue ile ana thread üzerinde ekleme işlemi gerçekleştirin.
(01-08-2017, Saat: 18:07)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: [ -> ] (01-08-2017, Saat: 16:54)Bahadir.Alkac Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
Bir şey dikkatimi çekti, ama ne @barutali ne de Tuğrul Bey bundan bahsetmiş. Acaba ben mi gözden kaçırdım, çünkü LiveBinding'ler bildiğim kadarıyla thread safe değil. Zaten UI ile ilgili olduğu için thread safe olması kolay değil. @barutali'nin bahsettiği sorunlar da tam anlamıyla thread safe hataları.
Benim tavsiyem çok basit:
1. Live Binding kullanmayı bırakın 
2. Veriler geldikçe thread içinde syncronize ile listview'e ekleme yapın.
İyi çalışmalar
NOT: Livebinding ve mobil işletim sistemlerinde veri tabanına direkt bağlantı kurmak bana biraz işin kolayına kaçmak gibi geldi. Ne zaman işin kolayına kaçmaya kalksam @barutali'nin karşılaştığı bin tane gereksiz sorunla uğraştım. Şimdi tavsiyeleri okuyunca da "biz de biliyoruz, ama üşendik işte" diye geçirdim içimden
Umarım @barutali üşendiğinden bu sorunlarla boğuşmuyordur 
Bakın ne yazmışım Bahadır Bey;
Alıntı:LiveBindings arkaplanda nasıl bir doldurma işlemi yapıyor incelemedim, bilmiyorum ama; Listview'e thread içinde kendiniz doldurma işlemi yaparken; TThread.Queue metodu ile doldurma işlemini deneyebilir misiniz ;-)
Yani Listview'i doldurma işlemini kendiniz yapın ve bir thread içinde yapın. Thread içinde yapacağınız için de VCL nesnelerine erişim sırasında güvenli olsun diye TThread.Queue metodunu kullanın demişim ;-) Kısaca, uygulamanın ana thread'i kilitlenmesin diye bir başka thread create edin, o thread içinde datayı nereden alıyorsanız oradan temin edin, döngüye girin ve TThread.Queue ile ana thread üzerinde ekleme işlemi gerçekleştirin.
Şu durumda gözden kaçırmışım

hocam mobilde bekleme ekranı olarak bu rus arkadaşın fgx componentini kullanıyorum. androidde de ios da da çok güzel sonuçlar aldım..
Component: fgActivityDialog
işlem başıda:
fgActivityDialog.Show;
fgActivityDialog.Message := 'Sunucuya Bağlanılıyor..';
Sonunda :
fgActivityDialog.Hide.
http://fire-monkey.ru/topic/83-fgx-%D0%B...tionsheet/