Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Edit boş geçilmesin
#1
Merhaba. Delphi de kayıt esnasında Edite bilgi girilmesini zorunlu olarak gösterme methodu nasıl kullanılıyor? Örnek vermem gerekirse adam adını girmez ise yan tarafta Kırmızı şekilde '' * '' çıkıp Zorunlu alan olduğunu göstersin. Bunu nasıl yapabilirim var mı böyle bir şey
Don't fear the try!
WWW
Cevapla
#2
Kod tarafında, Edit'in onExit olayına istediğin şekilde kod yazarak halledebilirsin, yani ;

if edit1.text<>' ' then 
begin
....   //buraya kodlarını yazacaksın
end;

şeklinde istediğin kod bloğunu yazabilirsin.
Hazır bir component olsun dersen de yanılmıyorsam JEDI VCL 'nin ValidateEdit diye bir componenti de olacaktı.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#3
(17-02-2017, Saat: 16:46)ramazan_t Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlKod tarafında, Edit'in onExit olayına istediğin şekilde kod yazarak halledebilirsin, yani ;

if edit1.text<>' ' then 
begin
....   //buraya kodlarını yazacaksın
end;

şeklinde istediğin kod bloğunu yazabilirsin.
Hazır bir component olsun dersen de yanılmıyorsam JEDI VCL 'nin ValidateEdit diye bir componenti de olacaktı.

Yorumunuz için teşekkür ederim. Boş geçilmeme olayını biliyorum ama boş girilirse bu kod sağ tarafta kırmızı şekilde * koyuyor mu yani müşteri zorunlu olduğunu anlamasını istiyorum wep sitelerinde olduğu gibi  Shy
Don't fear the try!
WWW
Cevapla
#4
Bende onu dedim aslında Smile ya kendin kod tarafında bir resmin görünürlüğünü (visible) kontrol edeceksin, ya da bu işi yapan bir component bulacaksın. Delphi'nin kendi Editlerinin bu özelliği yok. JediVCL 'nin böyle bir component'i vardı diye hatırlıyorum. Bir araştır istersen. Web sitelerinde de o dediğini yapmak için Javascript ve CSS ile çok uğraşılıyordu, şimdi Allahtan HTML5 çıktı da azcık rahatladık Smile HTML5 kendisi hallediyor o işleri.
Bol şans.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#5
(17-02-2017, Saat: 16:54)ramazan_t Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBende onu dedim aslında Smile ya kendin kod tarafında bir resmin görünürlüğünü (visible) kontrol edeceksin, ya da bu işi yapan bir component bulacaksın. Delphi'nin kendi Editlerinin bu özelliği yok. JediVCL 'nin böyle bir component'i vardı diye hatırlıyorum. Bir araştır istersen. Web sitelerinde de o dediğini yapmak için Javascript ve CSS ile çok uğraşılıyordu, şimdi Allahtan HTML5 çıktı da azcık rahatladık Smile HTML5 kendisi hallediyor o işleri.
Bol şans.

Aklıma bir yöntem geliyor ama oda çok kod kalabalığı yapacak gibi Big Grin  label eklerim yanlarına editlerin, eğer boş geçilirse o editlerin visible larını aktif eder label'ı * kırmızı yaparım sonra zorunlu alan mesajını veririm. Ama buda çok yorar gibi işlemciyi Big Grin
Don't fear the try!
WWW
Cevapla
#6
İşlemciyi yormaz merak etme Smile sadece kod kalabalığı olur o kadar Smile

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#7
Belki yıldız koydurma biraz kasar ama boş geçilmesini istemediğin controllerin çerçevesini farklı bir renge boyayabilirsin. Bunun için Canvas sınıfını kullanman gerekli canvas sınıfı form üzerinde şekiller çizmeni sağlayan sınıftır.

Örnek olarak formunda iki edit nesnen olsun:

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   btnSave: TButton;
   procedure btnSaveClick(Sender: TObject);
 private
   { Private declarations }
 public
   procedure SetRedCanvasToEdit(AEdit:TEdit);
 end;

Bir fonksiyon ile bu controllerin çerçevesini kırmızı renge boyayalım:

procedure TForm1.SetRedCanvasToEdit(AEdit: TEdit);
var
 Canvas: TControlCanvas;
begin
 Canvas := TControlCanvas.Create;
 try
   Canvas.Control := AEdit;
   Canvas.Font.Assign(AEdit.Font);

   Canvas.Brush.Style := bsClear;
   Canvas.Pen.Color := clRed;
   Canvas.Rectangle(Canvas.Control.ClientRect);
 finally
   Canvas.Free;
 end;
end;

Eğer boş ise bu kontrollerden biri çerçeveleri kırmızı renge boyayalım dolu ise kayıdı tamamlayalım:

procedure TForm1.btnSaveClick(Sender: TObject);
begin
 if (Trim(edit1.Text) = EmptyStr) or
     (Trim(edit2.Text) = EmptyStr)
 then
   begin
     ShowMessage('Lütfen kırmızı alanları doldurun.');
     SetRedCanvasToEdit(Edit1);
     SetRedCanvasToEdit(Edit2);
   end
 else
   ShowMessage('Kayıt başarılı.');
end;

Görünüm:

SetRedCanvasToEdit.gif
WWW
Cevapla
#8
(18-02-2017, Saat: 21:31)witalihakko Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBelki yıldız koydurma biraz kasar ama boş geçilmesini istemediğin controllerin çerçevesini farklı bir renge boyayabilirsin. Bunun için Canvas sınıfını kullanman gerekli canvas sınıfı form üzerinde şekiller çizmeni sağlayan sınıftır.

Örnek olarak formunda iki edit nesnen olsun:

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   btnSave: TButton;
   procedure btnSaveClick(Sender: TObject);
 private
   { Private declarations }
 public
   procedure SetRedCanvasToEdit(AEdit:TEdit);
 end;

Bir fonksiyon ile bu controllerin çerçevesini kırmızı renge boyayalım:

procedure TForm1.SetRedCanvasToEdit(AEdit: TEdit);
var
 Canvas: TControlCanvas;
begin
 Canvas := TControlCanvas.Create;
 try
   Canvas.Control := AEdit;
   Canvas.Font.Assign(AEdit.Font);

   Canvas.Brush.Style := bsClear;
   Canvas.Pen.Color := clRed;
   Canvas.Rectangle(Canvas.Control.ClientRect);
 finally
   Canvas.Free;
 end;
end;

Eğer boş ise bu kontrollerden biri çerçeveleri kırmızı renge boyayalım dolu ise kayıdı tamamlayalım:

procedure TForm1.btnSaveClick(Sender: TObject);
begin
 if (Trim(edit1.Text) = EmptyStr) or
     (Trim(edit2.Text) = EmptyStr)
 then
   begin
     ShowMessage('Lütfen kırmızı alanları doldurun.');
     SetRedCanvasToEdit(Edit1);
     SetRedCanvasToEdit(Edit2);
   end
 else
   ShowMessage('Kayıt başarılı.');
end;

Görünüm:

SetRedCanvasToEdit.gif
Bu yöntemde güzel ve kullanılabilirmiş baya teşekkür ederim  Shy
Don't fear the try!
WWW
Cevapla
#9
Bool döndüren bir function yazıp içine editi gönderin, uzunluğu 0 dan büyükse true döndürsün.
Cevapla
#10
(10-07-2017, Saat: 20:51)TDeveloper Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBool döndüren bir function yazıp içine editi gönderin, uzunluğu 0 dan büyükse true döndürsün.

Edit'in içerisinde sadece whitespace varsa ne yapılmalı peki?
Me on the move..
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Question Form İçinde Form Parent Olayında Edit Kontrolü hyperxman 7 652 01-07-2017, Saat: 12:41
Son Yorum: hyperxman
  Edit panding hido 1 323 02-06-2017, Saat: 02:10
Son Yorum: ramazanayer
  Bir edit dışında tüm editleri temizleme Dostk 7 747 24-05-2017, Saat: 14:53
Son Yorum: edo
  Edit Hızlı Barkod Girişi CaglarCoskun 6 712 03-12-2016, Saat: 14:22
Son Yorum: esistem



Konuyu Okuyanlar: 1 Ziyaretçi