edit lenght uzunluk kontrolü hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

edit lenght uzunluk kontrolü hakkında

Mesaj gönderen true_false »

editin içine girdiğimiz stringleri kontrol ederek button kullanmadan yönlendirme örneğin

var
x:Boolean;
begin
if edit1.Text=('dedi nişanlıyam') then
x:=True;
if x=true then close;
end;
esas sorun doğru şifre girilmediği zaman mesaj verme denedim ama her harf girişimde bana mesaj verdi
not: sadece bir uğraş acelesi yok
şimdiden ilginize teşekkür ederim...
type
Tform1 = class(Tform)
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
şifre için sabit (maksimum) bir uzunluk belirle editdeki text in lengthi o uzunluğa eşitse ve hala yazılan yazının içinde doğru şifre yoksa mesaj ver.

Birde eğer şifre editteki tüm karakterleri içine almayacaksa pos kullanarak karşılaştırmayı dene. (gerçi eğer şifre kontrolü falan yapıyorsan bu yöntemi kullanman pek uygun olmaz ama )
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

oldu

Mesaj gönderen true_false »

aslan saol bir uzunluk belirtmedim ama sonunda oldu
elcevap:
var
y:Byte;
x:Boolean;
begin
if edit1.Text=('dedi nişanlıyam ') then
x:=True;
if x=true then close;
if (length(edit1.Text) > length('dedi nişanlıyam')) and ( edit1.Text <> 'dedi nişanlıyam') then
ShowMessage('yanlış giriş');
end;

not:ufak bir sorun şifre doğru girildiğinde bir karakter daha girmemiz gerekiyor. :?:
type
Tform1 = class(Tform)
nilnur
Üye
Mesajlar: 60
Kayıt: 21 Tem 2004 05:06

Mesaj gönderen nilnur »

sayın true_false

yapmak istediğin şey edit1'e 'dedi nişanlıyam' girildiğinde 'close' komutunu çalıştırmak mı? eğer buysa yazdığın kodlarda format olarak değil ama mantıksal hata var. cevabına göre yardımcı olmaya çalışırım..
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Bu kodu nereye yazıyorsun? edit'in onchange'ine mi onkeypress'ine mi?
o zaman her yazdığın karakterde çalışır, ama onexit'e falan yazarsan bir sefer çalışır.
Eğer onkeypress'e yazdı isen ki sanırım öyle fazladan karakter yazmak zorunda olman normal zira tuşa baıldığında henüz edit'e yazılmıyor o yuşten önceki değer editin text'i oluyor. Benim de başıma gelmişti.
onkeydown ya da onkeyup ile çözmüştüm.

Kolay gelsin
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

ne tür bir mantıksal hat

Mesaj gönderen true_false »

imzamdada yazar sadece acami bir çaylağım bilgiye aç bir çaylak yaptığımda denemeden öteye giden bir çalışma değil di zaten sadece bir deneme nil nur bana mantıksal hatamı söylersen sevinirim teşekkürler



hdayi sana gelince editin on changesine yazdım hepinize tekrar teşekkürler
type
Tform1 = class(Tform)
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

senin kodun

Kod: Tümünü seç

var 
y:Byte;  // kullanılmayan değişken
x:Boolean; //  kullanmışsın ama gerek yok
begin 
if edit1.Text=('dedi nişanlıyam ') then  // ('dedi nişanlıyam ') dizisi sonundaki boşluk bir tuş fazla basmanın sebebi 
x:=True; // gerek yok aşağıdaki kodda olduğu gibi uygula
if x=true then close; 
if (length(edit1.Text) > length('dedi nişanlıyam')) and ( edit1.Text <> 'dedi nişanlıyam') then 
ShowMessage('yanlış giriş'); 
end; 
kodunu

Kod: Tümünü seç

      if edit1.Text='dedi nişanlıyam' then Close;
      if (length(edit1.Text) >= length('dedi nişanlıyam')) and ( edit1.Text <> 'dedi nişanlıyam') then
      ShowMessage('yanlış giriş');
şeklinde dene..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Kod: Tümünü seç

if (length(edit1.Text) > length('dedi nişanlıyam')) and ( edit1.Text <> 'dedi nişanlıyam') then
ShowMessage('yanlış giriş'); 
burada şu "<> " kısmını kaldırmak gerek zira her yazdığında verir bu mesajı.
Ykardaki gibi olursa sadece eşit olduğunda vermez.

Kolay Gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

hdayi hocam ne demek istediğini anlayamdım :oops: Bugün biraz uykusuzumda biraz açabilirmisin?
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

hocam afedersin ben uykusuz muşum :oops:

Kod: Tümünü seç

if (length(edit1.Text) > length('dedi nişanlıyam')) and  ( edit1.Text <> 'dedi nişanlıyam') then
ShowMessage('yanlış giriş');
şu and'den sonraki kısmı da edit1'in uzunluğu gibi algılamışım oysa text ile larşılaştırılıyormuş. :oops: :oops: :oops:
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

hocam önemli değil ancak gözden kaçırmamak gereken bir diğer konu ise > den sonraki = işareti
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

benim algıladığım gibi düşünürsen o = işaretinin de pek bir manası kalmıyor. Ancak bu durumda çık şey ifade ediyor tabi :)
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Cevapla