Arşiv Anasayfa IntraWeb ile Web Uygulamaları
Sayfalar: 1
Intraweb FrameWork (Standar Bileşenler ve ilginç özellikleri -2) Gönderen: kocaturk Tarih: 30 May 2007 19:44:43


Makalemizin bu bölümünde başlığından da anlaşılacağı gibi kaldığımız yerden ağır ağır ama keyifli bir şekilde yolumuza devam ediyoruz.
Bu bölümde TIWEdit bileşeni hakkında bir iki şeye değineceğim şimdi bunu okuyunca esprisi ne kardeşim TEdit i zaten biliyoruz dediğinizi duyar gibi oluyorum ama yazıyı okuyunca eminim hoşunuza gidecektir.

TIWEdit

Hepimiz bir Edit denetiminin ne işe yaradığını gayet iyi biliyoruz TIWEdit nesnesi de normal
 olarak bildiğimiz VCL TEdit nesnesi ile benzer amaçlar için kullanılır ve benzer özellikleri vardır bildiğimiz özelliklerin dışında birkaç anahtar özelliği var işte o özelliklere biraz değinelim istedim.

 Required ,FriendlyName ,BGColor ve FocusColor özellikleri
Zaten bakınca hemen anlaşılıyor ne işe yaradığı ama biz yinede açıklayalım bu özellik, IW formumuz tarayıcı sayfasında render edildikten sonra herhangi bir işlem yapmaya çalıştığımızda örneğin bir button a tıkladığımızda eğer IW form üzerinde  Required özelliği True olan bir IWEdit bileşeni varsa ve IWEdit in Text özelliği ( '' ) eşitse kısaca edit boşsa, içerisine herhangi bir veri girilmemişse Sunucu uygulamaya talep gitmeden tarayıcıda Editin boş olup olmadığına dair JavaScript kodlu bir doğrulama (validation) yapılacaktır, bu doğrulmayı yapan JS kodunu sunucu uygulama tasarım anı Edit in Required özelliğini True yaptığımızdan dolayı otomatik olarak formun HTML kodlarını üretirken kod içerisine ekler  böylece talep sunucuya iletilmeden Edit in boş olup olmadığı kontrol edilmiş olacaktır.

Diyelim ki bir üye giriş formu tasarladık ve üye adı ve parolasının boş geçilmesini istemiyoruz, boş geçildiğinde uygulamamızın kullanıcıyı bu alanı boş geçemeyeceği konusunda uyarmasını istiyoruz, işte o noktada bu özelliğin esprisi ve gücü devreye giriyor.
Diyebilirsiniz ki bunu
 
If IWEdit1.TExt = '' then WebApplication.ShowMessage('Bu alan boş bırakılamaz');

Şeklinde bir kod ile halledebiliriz. Evet halledebiliriz ama bu bize tarayıcı ile sunucu arasında extra bir trafikten dolayı extra bir külfet getirecektir, oysa bu özellik sayesinde sunucuya hiçbir talepte bulunmadan bu denetimi yapabiliriz. Ne kadar hoş bir özellik değimli ?

Denetimi yapan JS kodu aşağıdaki gibi bir şey olacaktır
 
 
function Validate() {
 if(IWEDIT1IWCL != null && IWEDIT1IWCL.value.length==0) {
   ReleaseLock();
   window.alert("IWEdit1 is a required field.");
   return false;
 }
 return true;
}
 
 

Bu JS kodunun tek karakterini bile biz yazmadık IW bizim için bu iyiliği yaptı.

Şimdi bununla ilgili basit bir örnek yapıp test edelim;

Delphi IDE sinde File->New->Other..->Intraweb yolunu izleyerek yeni bir IW uygulaması oluşturalım ve form üzerine bir IWEdit birde IWButton koyalım, IWEdit i seçip ObjectInspector den Required özelliğini  True olarak ayarlayalım. Başka hiçbir şey yapmamıza gerek yok formumuz yaklaşık olarak aşağıdaki gibi olacaktır.




Şimdi programı derleyip çalıştıralım ve tarayıcdaki sayafmıza bakalım durum aşağıdaki gibidir.



Bu durumdayken button a tıkladığımızda Button OnClick olayı için bir şey yazmadığımızdan herhangi bir tepki vermeyecektir dikkat ederseniz Edit içerisinde de "IWEDit1" yazıyor şimdi Editi temizleyip button a bir kez daha tıklayalım durum aşağıdaki gibi olacaktır.




Gördüğünüz gibi tarayıcı bir uyarı penceresi açtı ve “IWEdit1 is a required field” şeklinde bir uyarı verdi bu ne anlama geliyor? IW Edit boş olamaz bir veri girilmeli.

Buraya kadar tamam diyeceksiniz fakat bu uyarı mesajını özelleştirmek için ObjectInpector de herhangi bir özellik bulamadım ne yapmalıyım ? bunun da cevabı var tabi� ki program derlenirken derleyici IW in  IWResourceStrings unit ine müraacat ederek ValidationRequeredField ResourceString inin değerini alır bu ResourceString  IWResourceStrings unitinde aşağıdaki gibi tanımlanmıştır.
 
 ValidationRequeredField = '%s is a required field.';
 
 

Siz bu ResourceString in değerini değiştirerek Required özelliği bulunan tüm IW bileşenlerinde ilgili alanın boş bırakılması durumunda verilecek uyarının metnini değiştirebilirsiniz.

Ayrıca bu Unit içerisindeki İngilizce olan tüm ResourceString leri değiştirip Türkçe bir sürümünü oluşturabilirsiniz.
Dikkat ederseniz ResourceString değerinde %s ile ifade edilen şey uyarı penceresinde IWEdit1 olarak gözükmekte burada maksadım Formatlı yazdırmayı öğretmek değil başka bir şeye dikkat çekmek, IW ile uğraşanların dikkatini çekmiştir IW bileşenlerinin FriendlyName diye bir özelliği vardır işte IW bu özelliği, bu gibi durumlarda kullanır yani bileşenin FriendlyName özelliğine girilen bilgi bu gibi uyarı pencerelerinde kullanıcıya daha açıklayıcı bilgi sunmak istediğimizde çok işe yarar şimdi bunu örneklendirelim.


Form üzerindeki IWEdit1 in FriendlyName özelliğine “Kullanıcı Adı Alanı” değerini giriyoruz,

Bu arada ben IWResourceStrings Unitindeki
 
 ValidationRequeredField = '%s is a required field.';
 
 

Satırını
 

 
ValidationRequeredField = '%s Boş Bırakılamaz.';
 
 

Olarak değiştirdim IW Paketini tekrar derledim ve kullanıma hazır hale getirdim Form üzerindeki IWEdit1 in FriendlyName özelliğini de “Kullanıcı Adı Alanı” olarak değiştirdiğime göre artık web uygulamamı derleyip sonucuna bakıyorum, durum aşağıdaki gibi oluyor.




Gördüğünüz gibi hem sunucuya talep bulunmadan hem tek satır kod yazmadan hemde Türkçe bir uyarı verdirerek Edit in boş bırakılmaması gerektiğini kullanıcıya bildirmiş olduk.

Birde TIWEdit in BGColor ve FocusColor olmak üzere iki farklı renk özelliği var bunlarda kısaca BGColor Edit in rengini belirleyebilirsiniz FocusColor ile de Editin içine girdiğiniz an almasını istediğiniz rengi seçebilirsiniz yani VCL de SetFocus olayı gerçekleşmesi ile aynı olay böylece görsel yönden zengin web uylulamaları geliştirebilirsiniz. Unutmadan FocusColor özelliğide istemci taraflı aşağıdakine benzer bir JS kodu ile kontrol edilir. bu kod da aşağıdakine benzer bir JS kodu olacaktır.

 
var IWEDIT1IWCL = null;
function IWEDIT1_onfocus() {
this.style.backgroundColor='#A6CAF0'; return true;
 
 

Umarım hoşunuza gitmiştir bir başka makalede bir başka IW bileşeni ve ilginç özelliklerinde buluşmak dileğiyle.
Ynt: Intraweb FrameWork (Standar Bileşenler ve ilginç özellikleri -2) Gönderen: dynamo Tarih: 31 May 2007 11:07:19
@kocaturk ,hemen hemen hiç türkçe kaynak olamayan böyle bir konuda bu değerli makaleleri paylaşımından dolayı teşekkür ediyor, devamını bekliyoruz. Teşekkür

kolay gelsin.

 
Ynt: Intraweb FrameWork (Standar Bileşenler ve ilginç özellikleri -2) Gönderen: kocaturk Tarih: 31 May 2007 13:45:51
dilimin döndüğünce ve zamanım oldukça devam etmeye çalışacağım

Ynt: Intraweb FrameWork (Standar Bileşenler ve ilginç özellikleri -2) Gönderen: babahayati Tarih: 31 May 2007 15:21:22
@kocaturk ,hemen hemen hiç türkçe kaynak olamayan böyle bir konuda bu değerli makaleleri paylaşımından dolayı teşekkür ediyor, devamını bekliyoruz. Teşekkür
kolay gelsin.

bence oktay Borland da çalışıyor, hatta dikkat çekmemesi için @kocatürk gibi nick kullanıyor, Türkiye de ki kullanıcıların tepkisini şirkete bildiren bir ajan Smile Smile
bende tebrik ediyorum ama makale için değil esas kimliğini çok başarılı bir şeklide gizlediğin için Smile
Highlander ı bana özelden atsana sende prototipi vardır.
Ynt: Intraweb FrameWork (Standar Bileşenler ve ilginç özellikleri -2) Gönderen: kocaturk Tarih: 31 May 2007 17:23:05
Highlander ı bana özelden atsana sende prototipi vardır.

Daha bitmedi .NET 3.0 desteği koyalım mı koymayalım mı diye düşünüyoruz Temmuz genel seçimlerinin sonucunu bekliyoruz ona göre .NET 3.0 konusu .NETLEŞECEK netleşsin Ağustos gibi gönderirim..
 Grin Grin Grin

iyi niyetiniz için teşekkürler