Konuyu Oyla:
  • Derecelendirme: 3.67/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FMX Scrool Keyboard Form..
#11
(25-11-2017, Saat: 17:05)nehirnnn Adlı Kullanıcıdan Alıntı: Ben de internette epeyce aradım. Bulduğum her örneği denedim, hiçbiri düzgün çalışmıyor.
Bir de bazı konularda şöyle bir şaşkınlığım var. Sanki bu tip sorunları sadece ben ve bir kaç kişi yaşıyor, diğerleri hiç bu tip bir sorun yaşamamış gibi bir izlenime kapılıyorum. Mobil bir uygulama yapıyorsanız, ekranda bir editbox ınız varsa bu sorunla herkesin karşılaşması ve bu konuda bir çok örnek olması gerekmez mi?
Kendimce bir şeyler yaptım, ancak her control için ayrı kod yazmak saçma geliyor bana. Bunun pratik bir yolu olmalı diye düşünüyorum...

Eğer çok ciddi bir veri girişi ekranı yapmayı planlıyorsanız formun konumunu TEdit yada diğer input komponentlerinize göre ayarlayabileceğiniz örnekler bulunuyor. Onlara bir göz atmanızı tavsiye ederim. Genel olarak mobil uygulamada kullanılan klavyenin daha kullanışlı olmasını sağlamanın birkaç zorlayıcı yolu bulunuyor.

İlk yöntem; Form tasarımlarınızı yaparken ekrana kendi yönetimsel butonlarınızı TRectangle içerisinde yerleştirerek tamamen sizin yönetiminize göre ve input komponentlerinizin konumuna göre yukarıda, aşağıda, sağda, solda açma imkanınız olur.

İkinci yöntem; Form tasarımlarınızda mümkün mertebe klavyenin altında kalmayacak şekliyle tasarım yapın. TVertScrollBox bu konuda birçok sorunumuzu çözüyor.

Üçüncü yöntem; Gülü seven dikene katlanır. Küçücük ekranlardan ciddi ciddi veri toplamayı planlıyorsanız uğraş kaçınılmaz bir son. Normal ölçeklerdeki bir klavyenin 1/4 ölçeğinde bir ekranda klavyede yapabildiklerinizi yapmanın bir bedeli var. Bundan kurtulmanın yöntemi ise her event için ortak olarak yazmış olduğum o fonksiyonları bağlayıp her komponenti 2 event'a bağlamanızdan geçiyor. Her input için bir OnKeyUp yada OnEnter ile OnExit olaylarına aynı veriyi bağlayın. Sender sayesinde nereye odaklanacağınızı, ne yapacağınızı ve nasıl yöneteceğinizi planlayabilir, hayata geçirebilirsiniz.

Dipnot: Kullanıcı sabırsızlığından kaynaklanan 2-3 kez geri tuşu ile önceki forma gitme işini de Form'un KeyUp olayının içine vkReturn tuşu geldiğinde Key parametresini nil ederek çözümleyebilirsiniz. Bunu ne yazık ki her formunuz için yapacaksınız.

İyi günler.
Cevapla
#12
(25-11-2017, Saat: 21:56)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı:
(25-11-2017, Saat: 17:05)nehirnnn Adlı Kullanıcıdan Alıntı: Ben de internette epeyce aradım. Bulduğum her örneği denedim, hiçbiri düzgün çalışmıyor.
Bir de bazı konularda şöyle bir şaşkınlığım var. Sanki bu tip sorunları sadece ben ve bir kaç kişi yaşıyor, diğerleri hiç bu tip bir sorun yaşamamış gibi bir izlenime kapılıyorum. Mobil bir uygulama yapıyorsanız, ekranda bir editbox ınız varsa bu sorunla herkesin karşılaşması ve bu konuda bir çok örnek olması gerekmez mi?
Kendimce bir şeyler yaptım, ancak her control için ayrı kod yazmak saçma geliyor bana. Bunun pratik bir yolu olmalı diye düşünüyorum...

Eğer çok ciddi bir veri girişi ekranı yapmayı planlıyorsanız formun konumunu TEdit yada diğer input komponentlerinize göre ayarlayabileceğiniz örnekler bulunuyor. Onlara bir göz atmanızı tavsiye ederim. Genel olarak mobil uygulamada kullanılan klavyenin daha kullanışlı olmasını sağlamanın birkaç zorlayıcı yolu bulunuyor.

İlk yöntem; Form tasarımlarınızı yaparken ekrana kendi yönetimsel butonlarınızı TRectangle içerisinde yerleştirerek tamamen sizin yönetiminize göre ve input komponentlerinizin konumuna göre yukarıda, aşağıda, sağda, solda açma imkanınız olur.

İkinci yöntem; Form tasarımlarınızda mümkün mertebe klavyenin altında kalmayacak şekliyle tasarım yapın. TVertScrollBox bu konuda birçok sorunumuzu çözüyor.

Üçüncü yöntem; Gülü seven dikene katlanır. Küçücük ekranlardan ciddi ciddi veri toplamayı planlıyorsanız uğraş kaçınılmaz bir son. Normal ölçeklerdeki bir klavyenin 1/4 ölçeğinde bir ekranda klavyede yapabildiklerinizi yapmanın bir bedeli var. Bundan kurtulmanın yöntemi ise her event için ortak olarak yazmış olduğum o fonksiyonları bağlayıp her komponenti 2 event'a bağlamanızdan geçiyor. Her input için bir OnKeyUp yada OnEnter ile OnExit olaylarına aynı veriyi bağlayın. Sender sayesinde nereye odaklanacağınızı, ne yapacağınızı ve nasıl yöneteceğinizi planlayabilir, hayata geçirebilirsiniz.

Dipnot: Kullanıcı sabırsızlığından kaynaklanan 2-3 kez geri tuşu ile önceki forma gitme işini de Form'un KeyUp olayının içine vkReturn tuşu geldiğinde Key parametresini nil ederek çözümleyebilirsiniz. Bunu ne yazık ki her formunuz için yapacaksınız.

İyi günler.

Abdullah bey, benim mantığımın almadığı konu şu. Alt alta 100 tane editbox bulunan bir sayfayı WebBrowser ile çağırdığımda, tarayıcı bunu çok kolay bir şekilde ayarlayabiliyor. Ekranın küçük ya da büyük olması önemli değil. Vertical scroll box ile alt alta yüzlerce edit de ekleyebiliriz. Delphi mobil uygulamalar konusuna el attıysa, mobil cihazda bir editbox içine girildiğinde sanal klavyenin açılacağını da biliyordur. Bu tip basit ve herkesin, her aşamada karşılaşabileceği sorunlar için günlerce uğraşmamızı mantıklı bulmuyorum sadece. Yani herkesçe aşikar olan konular için bir sürü fonksiyon yazmamıza gerek var mı?

Ayrıca açıklamalar için teşekkürler... Bahsettiniz componentler ile ilgili önerebileceğiniz isimler var mı....
Cevapla
#13
(04-12-2017, Saat: 14:49)nehirnnn Adlı Kullanıcıdan Alıntı:
(25-11-2017, Saat: 21:56)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Eğer çok ciddi bir veri girişi ekranı yapmayı planlıyorsanız formun konumunu TEdit yada diğer input komponentlerinize göre ayarlayabileceğiniz örnekler bulunuyor. Onlara bir göz atmanızı tavsiye ederim. Genel olarak mobil uygulamada kullanılan klavyenin daha kullanışlı olmasını sağlamanın birkaç zorlayıcı yolu bulunuyor.

İlk yöntem; Form tasarımlarınızı yaparken ekrana kendi yönetimsel butonlarınızı TRectangle içerisinde yerleştirerek tamamen sizin yönetiminize göre ve input komponentlerinizin konumuna göre yukarıda, aşağıda, sağda, solda açma imkanınız olur.

İkinci yöntem; Form tasarımlarınızda mümkün mertebe klavyenin altında kalmayacak şekliyle tasarım yapın. TVertScrollBox bu konuda birçok sorunumuzu çözüyor.

Üçüncü yöntem; Gülü seven dikene katlanır. Küçücük ekranlardan ciddi ciddi veri toplamayı planlıyorsanız uğraş kaçınılmaz bir son. Normal ölçeklerdeki bir klavyenin 1/4 ölçeğinde bir ekranda klavyede yapabildiklerinizi yapmanın bir bedeli var. Bundan kurtulmanın yöntemi ise her event için ortak olarak yazmış olduğum o fonksiyonları bağlayıp her komponenti 2 event'a bağlamanızdan geçiyor. Her input için bir OnKeyUp yada OnEnter ile OnExit olaylarına aynı veriyi bağlayın. Sender sayesinde nereye odaklanacağınızı, ne yapacağınızı ve nasıl yöneteceğinizi planlayabilir, hayata geçirebilirsiniz.

Dipnot: Kullanıcı sabırsızlığından kaynaklanan 2-3 kez geri tuşu ile önceki forma gitme işini de Form'un KeyUp olayının içine vkReturn tuşu geldiğinde Key parametresini nil ederek çözümleyebilirsiniz. Bunu ne yazık ki her formunuz için yapacaksınız.

İyi günler.

Abdullah bey, benim mantığımın almadığı konu şu. Alt alta 100 tane editbox bulunan bir sayfayı WebBrowser ile çağırdığımda, tarayıcı bunu çok kolay bir şekilde ayarlayabiliyor. Ekranın küçük ya da büyük olması önemli değil. Vertical scroll box ile alt alta yüzlerce edit de ekleyebiliriz. Delphi mobil uygulamalar konusuna el attıysa, mobil cihazda bir editbox içine girildiğinde sanal klavyenin açılacağını da biliyordur. Bu tip basit ve herkesin, her aşamada karşılaşabileceği sorunlar için günlerce uğraşmamızı mantıklı bulmuyorum sadece. Yani herkesçe aşikar olan konular için bir sürü fonksiyon yazmamıza gerek var mı?

Ayrıca açıklamalar için teşekkürler... Bahsettiniz componentler ile ilgili önerebileceğiniz isimler var mı....

İsminizi bilmediğim için doğrudan hitap edemiyorum kusura bakmayın. Sayın nehirnnn,

Şüphesiz ki cross-platform'un bazı dezavantajları olacaktır. Burada Android'e Java'dan daha iyi müdahale edebilecek kadar yetkinlikte bir dil, platform yada framework beklemek hata olur. Önce bunu netleştirirseniz, beklentilerinizi daha iyi karşılayacağı konusunda mental olarak hazır olursunuz.

Netice itibariyle Delphi, Object Pascal programlama dilinin kullanıldığı Bütünleşik (Entegre edilmiş) Yazılım Geliştirme Çevresidir. Geliştiricisi olan Embarcadero'nun ise eş zamanlı yürüttüğü 8~12 arasında projesi/ürünü bulunuyor.

Bahse konu olan ürün Delphi ve kullanılan görsel kütüphane FMX olduğunu öngörüp şöyle bir şeyler söyleyebilirim sadece; Embarcadero firmasının bu işe ayırdığı bütçe, şüphesiz ki orjinal yazılım kullanan kişilerin vereceği destek, geri-bildirim ve istekler doğrultusunda ilerleyebiliyor. Eugene isimli meşhur bir Rus geliştiricinin özel projesi olan FMX, Embarcadero'nun ilgisini çekerek VCL'e bir alternatif olarak ortaya çıkmış ve Delphi üzerine implement edilmiş bir kütüphaneden ibarettir.

Henüz kararlı mıdır, değil midir, tartışılır. Netice itibariyle bugün Eclipse adındaki Java geliştirme ortamının kararlılığı konusunda hiçkimse konuşamaz. Aynı şey, birçok programlama dili için geçerlidir. Delphi'yi diğer tüm programlama dilleri ve geliştirme çevrelerinden ayıran unsur gelişmiş bir yönetim ve geliştirme arayüzü sağlıyor olmasıdır. Yani dünya üzerindeki en gelişmiş yazılım geliştirme ortamını kullanıyorsunuz.

Şüphesiz ki bu ortamın bu seviyelere gelmesi öyle 2 günde olan bir şey değildi. 30 yılın üzerinde bir deneyim söz konusu. Peki ya Android platformu kaç yıldır alemimizde? (2004 proje çıkışı, 2006 Abd yayılması, 2008 Avrupa, 2009 Türkiye) Peki iOS? (2007 Abd, 2008 Avrupa-Türkiye)


Yani; henüz 10 yaşını devirmemiş ve bu 10 yıl içinde çok radikal değişikliklere gitmiş platformlardan bahsediyoruz. Buraya kadar tamamsanız devam edebiliriz.

Cross-platform dediğimiz şey temelde Java ve Swift kodlarından ibaret olmasa da, geliştirdiğiniz dildeki kodların muadil karşılıklarını çeviren, ve kaynak kodu java-swift gibi davranan bir Platform çevirisi sayesinde native kodların işlevlerini sizin geliştirdiğiniz dile kazandırma çalışmasından başka bir şey değildir. Bunu Delphi'nin gündeme getirmesi XE2 ile oldu. 2011-2012 yıllarında gündemin içine girdiler. XE4-5 ile 2013 yılında bir yükseliş oldu ancak Google Play üzerinde Delphi tarafından üretilen proje miktarı iki eldeki parmak adedini geçmedi. 2015 yılı itibariyle çok ciddi bir ivme kazandılar. XE7 ve XE8 sürümleri ile Android 4.0 ve 4.5 arasındaki tüm sürümlere karşı desteğini sağladı.

10 sürümü ile birlikte Android 5.0, 6.0 (her gelişen sürümde ara sürümler çıktı) destekleri sağlandı. Marshmallow'a geçişte XE8 kodları sorun vermeye başlamıştı. 10 Seattle ve 10.1 Berlin ile bu sorunlar aşıldı. Şuanda halâ Berlin kullanan birisi olarak; Embarcadero'yu takdir ve tebrik ediyorum. Google ve Apple'ın maymun iştahlılığına rağmen, öyle bir gün çıkıp "artık versiyonumuz şudur, yapılacak budur, hadi görüşürüz" felsefesi ile tabiri caizse pimi çekip bombayı bırakıp ortadan kaybolmalarına karşılık, en hızlı mukavemet ve hamleyi yapan firmaların başında gelmesi benim için ayrı bir gurur meselesi.

Şimdi dilerseniz verdiğiniz örnek üzerinden olayı ele alalım.

100 inputluk bir form doldurmayı ben hiç görmedim. Tuik yıllık şirket veri formlarında bile 40 soruyu geçmiyor. Hadi 100 soru olduğunu varsayalım, böyle bir ekrana aşırı fazla ihtiyaç duyduk. Başka çaremiz de yok. Ne yapacağız?

WebBrowser ile çok kolay pratik olabiliyor dediniz. Ancak ıskaladığınız şey Web uygulama Post işlemini gerçekleştirene kadar hiçbir veriyi muhafaza etmez, hiçbir veri üzerinde işlem yapmaz. Sadece client-side belki komponent görünümlerini ve seçimleri yönetebilir. Onda da 100 soruluk bir form için bu neredeyse imkansız demektir.

Eğer çok fazla veri girdisi yapacaksanız, bunun mobilde bir bedeli var. Hatta 100 input işin içine girince bunu Windows'ta yaparken bile bir bedeli var. Üstelik virtual keyboard ihtiyacı olmadığı halde.

Burada tüm suçu ve günahı Delphi'ye yıkmak kesinlikle yanlış olur. Neticede kullanıcı deneyimlerini ele aldığınız zaman karşınıza çıkan şey kullanıcıların çok kabiliyetli insanlar olmadığıdır. Bahsettiğiniz formu tıkır tıkır kullanacak kullanıcı bulamayacağınız gibi, o formu böyle müthiş akıcı kullandıracak bir platform da ben bilmiyorum. Varsa söyleyin, ben de kullanmaya başlayayım. Bilgileri de sizlerle yine paylaşırım.

Sözü çok uzattım, kusura bakmayın. Sonuç olarak yapacağınız işler sizlerle alakalı ve siz ne kadar olaya hakimseniz o kadar kolay yönetebilirsiniz. Yazmış olduğum fonksiyonu 100 tane inputa bağlayıp, tüm inputların isimlerini elinizde muhafaza ederek sadece SENDER ile tek metod içinde yönetimi gerçekleştirebilirsiniz. Kolay anlaşılır olması adına o şekilde iletmiştim.

Ve sadece acizane tavsiyem; Step-to-step mantığını kullanmanız sizin için sağlıklı olacaktır. Bir ilan sisteminde mesela ilan bilgileri, kategori bilgileri, fiyat bilgileri, fotoğraf-detay bilgileri, ilan veren bilgileri gibi aşama aşama ilerleyen ekranları sizde mobilde yapabilirsiniz. Bunu da TTabControl ile tek bir form üzerinde pratik bir şekilde gerçekleştirebilirsiniz.

Platform, süreç ve geliştirme hakkında sormak istediğiniz tüm soruları sormakta özgürsünüz. Dilediğiniz şekli ile sorun. Dilimiz döndüğünce sizlere yanıt vermeye çalışacağız. İyi günler diliyorum.
Cevapla
#14
(04-12-2017, Saat: 15:14)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı:
(04-12-2017, Saat: 14:49)nehirnnn Adlı Kullanıcıdan Alıntı: Abdullah bey, benim mantığımın almadığı konu şu. Alt alta 100 tane editbox bulunan bir sayfayı WebBrowser ile çağırdığımda, tarayıcı bunu çok kolay bir şekilde ayarlayabiliyor. Ekranın küçük ya da büyük olması önemli değil. Vertical scroll box ile alt alta yüzlerce edit de ekleyebiliriz. Delphi mobil uygulamalar konusuna el attıysa, mobil cihazda bir editbox içine girildiğinde sanal klavyenin açılacağını da biliyordur. Bu tip basit ve herkesin, her aşamada karşılaşabileceği sorunlar için günlerce uğraşmamızı mantıklı bulmuyorum sadece. Yani herkesçe aşikar olan konular için bir sürü fonksiyon yazmamıza gerek var mı?

Ayrıca açıklamalar için teşekkürler... Bahsettiniz componentler ile ilgili önerebileceğiniz isimler var mı....

İsminizi bilmediğim için doğrudan hitap edemiyorum kusura bakmayın. Sayın nehirnnn,

Şüphesiz ki cross-platform'un bazı dezavantajları olacaktır. Burada Android'e Java'dan daha iyi müdahale edebilecek kadar yetkinlikte bir dil, platform yada framework beklemek hata olur. Önce bunu netleştirirseniz, beklentilerinizi daha iyi karşılayacağı konusunda mental olarak hazır olursunuz.

Netice itibariyle Delphi, Object Pascal programlama dilinin kullanıldığı Bütünleşik (Entegre edilmiş) Yazılım Geliştirme Çevresidir. Geliştiricisi olan Embarcadero'nun ise eş zamanlı yürüttüğü 8~12 arasında projesi/ürünü bulunuyor.

Bahse konu olan ürün Delphi ve kullanılan görsel kütüphane FMX olduğunu öngörüp şöyle bir şeyler söyleyebilirim sadece; Embarcadero firmasının bu işe ayırdığı bütçe, şüphesiz ki orjinal yazılım kullanan kişilerin vereceği destek, geri-bildirim ve istekler doğrultusunda ilerleyebiliyor. Eugene isimli meşhur bir Rus geliştiricinin özel projesi olan FMX, Embarcadero'nun ilgisini çekerek VCL'e bir alternatif olarak ortaya çıkmış ve Delphi üzerine implement edilmiş bir kütüphaneden ibarettir.

Henüz kararlı mıdır, değil midir, tartışılır. Netice itibariyle bugün Eclipse adındaki Java geliştirme ortamının kararlılığı konusunda hiçkimse konuşamaz. Aynı şey, birçok programlama dili için geçerlidir. Delphi'yi diğer tüm programlama dilleri ve geliştirme çevrelerinden ayıran unsur gelişmiş bir yönetim ve geliştirme arayüzü sağlıyor olmasıdır. Yani dünya üzerindeki en gelişmiş yazılım geliştirme ortamını kullanıyorsunuz.

Şüphesiz ki bu ortamın bu seviyelere gelmesi öyle 2 günde olan bir şey değildi. 30 yılın üzerinde bir deneyim söz konusu. Peki ya Android platformu kaç yıldır alemimizde? (2004 proje çıkışı, 2006 Abd yayılması, 2008 Avrupa, 2009 Türkiye) Peki iOS? (2007 Abd, 2008 Avrupa-Türkiye)


Yani; henüz 10 yaşını devirmemiş ve bu 10 yıl içinde çok radikal değişikliklere gitmiş platformlardan bahsediyoruz. Buraya kadar tamamsanız devam edebiliriz.

Cross-platform dediğimiz şey temelde Java ve Swift kodlarından ibaret olmasa da, geliştirdiğiniz dildeki kodların muadil karşılıklarını çeviren, ve kaynak kodu java-swift gibi davranan bir Platform çevirisi sayesinde native kodların işlevlerini sizin geliştirdiğiniz dile kazandırma çalışmasından başka bir şey değildir. Bunu Delphi'nin gündeme getirmesi XE2 ile oldu. 2011-2012 yıllarında gündemin içine girdiler. XE4-5 ile 2013 yılında bir yükseliş oldu ancak Google Play üzerinde Delphi tarafından üretilen proje miktarı iki eldeki parmak adedini geçmedi. 2015 yılı itibariyle çok ciddi bir ivme kazandılar. XE7 ve XE8 sürümleri ile Android 4.0 ve 4.5 arasındaki tüm sürümlere karşı desteğini sağladı.

10 sürümü ile birlikte Android 5.0, 6.0 (her gelişen sürümde ara sürümler çıktı) destekleri sağlandı. Marshmallow'a geçişte XE8 kodları sorun vermeye başlamıştı. 10 Seattle ve 10.1 Berlin ile bu sorunlar aşıldı. Şuanda halâ Berlin kullanan birisi olarak; Embarcadero'yu takdir ve tebrik ediyorum. Google ve Apple'ın maymun iştahlılığına rağmen, öyle bir gün çıkıp "artık versiyonumuz şudur, yapılacak budur, hadi görüşürüz" felsefesi ile tabiri caizse pimi çekip bombayı bırakıp ortadan kaybolmalarına karşılık, en hızlı mukavemet ve hamleyi yapan firmaların başında gelmesi benim için ayrı bir gurur meselesi.

Şimdi dilerseniz verdiğiniz örnek üzerinden olayı ele alalım.

100 inputluk bir form doldurmayı ben hiç görmedim. Tuik yıllık şirket veri formlarında bile 40 soruyu geçmiyor. Hadi 100 soru olduğunu varsayalım, böyle bir ekrana aşırı fazla ihtiyaç duyduk. Başka çaremiz de yok. Ne yapacağız?

WebBrowser ile çok kolay pratik olabiliyor dediniz. Ancak ıskaladığınız şey Web uygulama Post işlemini gerçekleştirene kadar hiçbir veriyi muhafaza etmez, hiçbir veri üzerinde işlem yapmaz. Sadece client-side belki komponent görünümlerini ve seçimleri yönetebilir. Onda da 100 soruluk bir form için bu neredeyse imkansız demektir.

Eğer çok fazla veri girdisi yapacaksanız, bunun mobilde bir bedeli var. Hatta 100 input işin içine girince bunu Windows'ta yaparken bile bir bedeli var. Üstelik virtual keyboard ihtiyacı olmadığı halde.

Burada tüm suçu ve günahı Delphi'ye yıkmak kesinlikle yanlış olur. Neticede kullanıcı deneyimlerini ele aldığınız zaman karşınıza çıkan şey kullanıcıların çok kabiliyetli insanlar olmadığıdır. Bahsettiğiniz formu tıkır tıkır kullanacak kullanıcı bulamayacağınız gibi, o formu böyle müthiş akıcı kullandıracak bir platform da ben bilmiyorum. Varsa söyleyin, ben de kullanmaya başlayayım. Bilgileri de sizlerle yine paylaşırım.

Sözü çok uzattım, kusura bakmayın. Sonuç olarak yapacağınız işler sizlerle alakalı ve siz ne kadar olaya hakimseniz o kadar kolay yönetebilirsiniz. Yazmış olduğum fonksiyonu 100 tane inputa bağlayıp, tüm inputların isimlerini elinizde muhafaza ederek sadece SENDER ile tek metod içinde yönetimi gerçekleştirebilirsiniz. Kolay anlaşılır olması adına o şekilde iletmiştim.

Ve sadece acizane tavsiyem; Step-to-step mantığını kullanmanız sizin için sağlıklı olacaktır. Bir ilan sisteminde mesela ilan bilgileri, kategori bilgileri, fiyat bilgileri, fotoğraf-detay bilgileri, ilan veren bilgileri gibi aşama aşama ilerleyen ekranları sizde mobilde yapabilirsiniz. Bunu da TTabControl ile tek bir form üzerinde pratik bir şekilde gerçekleştirebilirsiniz.

Platform, süreç ve geliştirme hakkında sormak istediğiniz tüm soruları sormakta özgürsünüz. Dilediğiniz şekli ile sorun. Dilimiz döndüğünce sizlere yanıt vermeye çalışacağız. İyi günler diliyorum.

Çok teşekkürler bu detaylı cevap için. Delphi den kopamıyorsam bu sizlerden gelen destek ve böylesi emek isteyen cevaplardan dolayı...
Cevapla
#15
(04-12-2017, Saat: 15:43)nehirnnn Adlı Kullanıcıdan Alıntı:
(04-12-2017, Saat: 15:14)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: İsminizi bilmediğim için doğrudan hitap edemiyorum kusura bakmayın. Sayın nehirnnn,

Şüphesiz ki cross-platform'un bazı dezavantajları olacaktır. Burada Android'e Java'dan daha iyi müdahale edebilecek kadar yetkinlikte bir dil, platform yada framework beklemek hata olur. Önce bunu netleştirirseniz, beklentilerinizi daha iyi karşılayacağı konusunda mental olarak hazır olursunuz.

Netice itibariyle Delphi, Object Pascal programlama dilinin kullanıldığı Bütünleşik (Entegre edilmiş) Yazılım Geliştirme Çevresidir. Geliştiricisi olan Embarcadero'nun ise eş zamanlı yürüttüğü 8~12 arasında projesi/ürünü bulunuyor.

Bahse konu olan ürün Delphi ve kullanılan görsel kütüphane FMX olduğunu öngörüp şöyle bir şeyler söyleyebilirim sadece; Embarcadero firmasının bu işe ayırdığı bütçe, şüphesiz ki orjinal yazılım kullanan kişilerin vereceği destek, geri-bildirim ve istekler doğrultusunda ilerleyebiliyor. Eugene isimli meşhur bir Rus geliştiricinin özel projesi olan FMX, Embarcadero'nun ilgisini çekerek VCL'e bir alternatif olarak ortaya çıkmış ve Delphi üzerine implement edilmiş bir kütüphaneden ibarettir.

Henüz kararlı mıdır, değil midir, tartışılır. Netice itibariyle bugün Eclipse adındaki Java geliştirme ortamının kararlılığı konusunda hiçkimse konuşamaz. Aynı şey, birçok programlama dili için geçerlidir. Delphi'yi diğer tüm programlama dilleri ve geliştirme çevrelerinden ayıran unsur gelişmiş bir yönetim ve geliştirme arayüzü sağlıyor olmasıdır. Yani dünya üzerindeki en gelişmiş yazılım geliştirme ortamını kullanıyorsunuz.

Şüphesiz ki bu ortamın bu seviyelere gelmesi öyle 2 günde olan bir şey değildi. 30 yılın üzerinde bir deneyim söz konusu. Peki ya Android platformu kaç yıldır alemimizde? (2004 proje çıkışı, 2006 Abd yayılması, 2008 Avrupa, 2009 Türkiye) Peki iOS? (2007 Abd, 2008 Avrupa-Türkiye)


Yani; henüz 10 yaşını devirmemiş ve bu 10 yıl içinde çok radikal değişikliklere gitmiş platformlardan bahsediyoruz. Buraya kadar tamamsanız devam edebiliriz.

Cross-platform dediğimiz şey temelde Java ve Swift kodlarından ibaret olmasa da, geliştirdiğiniz dildeki kodların muadil karşılıklarını çeviren, ve kaynak kodu java-swift gibi davranan bir Platform çevirisi sayesinde native kodların işlevlerini sizin geliştirdiğiniz dile kazandırma çalışmasından başka bir şey değildir. Bunu Delphi'nin gündeme getirmesi XE2 ile oldu. 2011-2012 yıllarında gündemin içine girdiler. XE4-5 ile 2013 yılında bir yükseliş oldu ancak Google Play üzerinde Delphi tarafından üretilen proje miktarı iki eldeki parmak adedini geçmedi. 2015 yılı itibariyle çok ciddi bir ivme kazandılar. XE7 ve XE8 sürümleri ile Android 4.0 ve 4.5 arasındaki tüm sürümlere karşı desteğini sağladı.

10 sürümü ile birlikte Android 5.0, 6.0 (her gelişen sürümde ara sürümler çıktı) destekleri sağlandı. Marshmallow'a geçişte XE8 kodları sorun vermeye başlamıştı. 10 Seattle ve 10.1 Berlin ile bu sorunlar aşıldı. Şuanda halâ Berlin kullanan birisi olarak; Embarcadero'yu takdir ve tebrik ediyorum. Google ve Apple'ın maymun iştahlılığına rağmen, öyle bir gün çıkıp "artık versiyonumuz şudur, yapılacak budur, hadi görüşürüz" felsefesi ile tabiri caizse pimi çekip bombayı bırakıp ortadan kaybolmalarına karşılık, en hızlı mukavemet ve hamleyi yapan firmaların başında gelmesi benim için ayrı bir gurur meselesi.

Şimdi dilerseniz verdiğiniz örnek üzerinden olayı ele alalım.

100 inputluk bir form doldurmayı ben hiç görmedim. Tuik yıllık şirket veri formlarında bile 40 soruyu geçmiyor. Hadi 100 soru olduğunu varsayalım, böyle bir ekrana aşırı fazla ihtiyaç duyduk. Başka çaremiz de yok. Ne yapacağız?

WebBrowser ile çok kolay pratik olabiliyor dediniz. Ancak ıskaladığınız şey Web uygulama Post işlemini gerçekleştirene kadar hiçbir veriyi muhafaza etmez, hiçbir veri üzerinde işlem yapmaz. Sadece client-side belki komponent görünümlerini ve seçimleri yönetebilir. Onda da 100 soruluk bir form için bu neredeyse imkansız demektir.

Eğer çok fazla veri girdisi yapacaksanız, bunun mobilde bir bedeli var. Hatta 100 input işin içine girince bunu Windows'ta yaparken bile bir bedeli var. Üstelik virtual keyboard ihtiyacı olmadığı halde.

Burada tüm suçu ve günahı Delphi'ye yıkmak kesinlikle yanlış olur. Neticede kullanıcı deneyimlerini ele aldığınız zaman karşınıza çıkan şey kullanıcıların çok kabiliyetli insanlar olmadığıdır. Bahsettiğiniz formu tıkır tıkır kullanacak kullanıcı bulamayacağınız gibi, o formu böyle müthiş akıcı kullandıracak bir platform da ben bilmiyorum. Varsa söyleyin, ben de kullanmaya başlayayım. Bilgileri de sizlerle yine paylaşırım.

Sözü çok uzattım, kusura bakmayın. Sonuç olarak yapacağınız işler sizlerle alakalı ve siz ne kadar olaya hakimseniz o kadar kolay yönetebilirsiniz. Yazmış olduğum fonksiyonu 100 tane inputa bağlayıp, tüm inputların isimlerini elinizde muhafaza ederek sadece SENDER ile tek metod içinde yönetimi gerçekleştirebilirsiniz. Kolay anlaşılır olması adına o şekilde iletmiştim.

Ve sadece acizane tavsiyem; Step-to-step mantığını kullanmanız sizin için sağlıklı olacaktır. Bir ilan sisteminde mesela ilan bilgileri, kategori bilgileri, fiyat bilgileri, fotoğraf-detay bilgileri, ilan veren bilgileri gibi aşama aşama ilerleyen ekranları sizde mobilde yapabilirsiniz. Bunu da TTabControl ile tek bir form üzerinde pratik bir şekilde gerçekleştirebilirsiniz.

Platform, süreç ve geliştirme hakkında sormak istediğiniz tüm soruları sormakta özgürsünüz. Dilediğiniz şekli ile sorun. Dilimiz döndüğünce sizlere yanıt vermeye çalışacağız. İyi günler diliyorum.

Çok teşekkürler bu detaylı cevap için. Delphi den kopamıyorsam bu sizlerden gelen destek ve böylesi emek isteyen cevaplardan dolayı...

Bu kadar özverili cevap ve desteklerine rağmen sizce Abdullah arkadaşımız +4 puanı hak etmiyor mu?  :ss
Cevapla
#16
V3WOnZ.png

Biraz önce 2 sene önce yayımladığım bir projeye sürüm güncellemesi atmam gerekti. Özel bir kaç olay için kullanılan bir proje olduğu için yıldan yıla ek bir şey olursa versiyon atılır. 2015'te yüklemesi yapılmış, 2017 yılına gelindiğinde API Level 9'dan 14'e yükselmiş. Hedef SDK ise 3 artış göstermiş. Sanırım yukarıda uzun açıklamada ifade ettiklerim canlı bir örnek ile bütünleşmiştir Shy
Cevapla
#17
(04-12-2017, Saat: 15:51)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(04-12-2017, Saat: 15:43)nehirnnn Adlı Kullanıcıdan Alıntı: Çok teşekkürler bu detaylı cevap için. Delphi den kopamıyorsam bu sizlerden gelen destek ve böylesi emek isteyen cevaplardan dolayı...

Bu kadar özverili cevap ve desteklerine rağmen sizce Abdullah arkadaşımız +4 puanı hak etmiyor mu?  :ss

Ben forum özelliklerini pek bilmiyorum maalesef. En yüksek kaç puan, nereden veriliyorsa veririm tabii ki Smile
Cevapla
#18
(04-12-2017, Saat: 16:19)nehirnnn Adlı Kullanıcıdan Alıntı:
(04-12-2017, Saat: 15:51)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Bu kadar özverili cevap ve desteklerine rağmen sizce Abdullah arkadaşımız +4 puanı hak etmiyor mu?  :ss

Ben forum özelliklerini pek bilmiyorum maalesef. En yüksek kaç puan, nereden veriliyorsa veririm tabii ki Smile

Verilen yanıtın hemen altında "puan ver" butonu var. Yalnızca beğendiğiniz yanıtlara, çözüm odaklığına göre 1 ile 4 puan verin.
Cevapla
#19
arkadaşlar sorunu çözdüm ben.. ekteki pas dosyasına rojenize ekleyip, uses kısmına da eklerseniz sorun otomatikmen halloluyor. tek satır kod yazmanıza gerek kalmadan projenin en altında kalan editlere girdiğinizde bile klavye çıktığında ekran yukarıya çıkıor ve edite ne yazdığınızı görebiliyorsunuz..
Cevapla
#20
(06-12-2017, Saat: 22:11)mcuyan Adlı Kullanıcıdan Alıntı: arkadaşlar sorunu çözdüm ben.. ekteki pas dosyasına rojenize ekleyip, uses kısmına da eklerseniz sorun otomatikmen halloluyor. tek satır kod yazmanıza gerek kalmadan projenin en altında kalan editlere girdiğinizde bile klavye çıktığında ekran yukarıya çıkıor ve edite ne yazdığınızı görebiliyorsunuz..

Hangi ekteki dosya?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 12 Boş Form Derleme Hatası [Çözüldü] codder71 4 471 21-02-2024, Saat: 22:09
Son Yorum: codder71
  Form Boyutlandırma Altıner 7 376 25-01-2024, Saat: 12:31
Son Yorum: Altıner
  PAServer Manager form ölçek sorunu delphi.developer 0 202 12-11-2023, Saat: 01:43
Son Yorum: delphi.developer
  Form minimize Altıner 2 559 05-06-2023, Saat: 17:54
Son Yorum: Altıner
  Mobile Uygulama Çoklu Form 3ddark 8 1.477 12-01-2023, Saat: 11:45
Son Yorum: RAD Coder



Konuyu Okuyanlar: 1 Ziyaretçi