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
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Şimdi programı derleyip çalıştıralım ve tarayıcdaki sayafmıza bakalım durum aşağıdaki gibidir.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
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.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
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.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
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
Kod: Kodu kopyalamak için üzerine çift tıklayın!
ValidationRequeredField = '%s is a required field.';
Satırını
|
Alıntı: |
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.
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
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.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
var IWEDIT1IWCL = null;
function IWEDIT1_onfocus() {
this.style.backgroundColor='#A6CAF0'; return true;
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.