benim bir şifre formu yapmam lazım şöyleki;
bir tamam ve iptal butonu düşünürsek birde doğal olarak şifre gireceğimiz bir edit olacak... asıl problemse şu...
edit1 girilen şifre en az 8 karakter olacak ve ilk 3 karakter rakam olmak zorunda.. lütfen yardım. acil.
Şifre sordurmak için (Delphi7'de) File-New-Other ile açılan pencerenin dialogs sekmesindeki Password Dialog'u kullanabilirsiniz.
Ancak şifrenin en az 8 karakter ve ilk 3 karakterinin rakam olmak zorunda olması gerekliliğinin ne gibi bir soruna yol açacağını anlayamadım . Zaten girilen şifre doğru değilse işlemi yaptırmazsınız, şifrenin hangi biçimde olacağı neden önemli ki? Şifrenin formatını yukarıdaki gibi belirtmek kırılmasını kolaylaştıracaktır.
1. text'in uzunluğunu kontrol edeceksin,
2. uzunluğun 3 ve 3 ten küçük olduğu durumlar için sadece karaketer olarak asscii tablosundan rakamların olduğu aralığı alacaksın. Burada unutmaman gereken önemli bir nokta kullanıcının Del ve Backspace tuşlarınıda kullanabilmesidir.
3. karakter uzunluğu 3 ten büyük ve 9 dan küçük olduğu durumlardada herşeyi yazmasına izin vereceksin.
Muskut arkadaşıma katılıyorum hem birde ilk 3 karakter neden rakam olmak zorunda yani ne getirisi olacak...
Interbase-Firebird için ;
veritabanınızda bir tablo oluşturun ve parola adında bir varchar alan tanımlayın boyutu size bağlı sonra kısaca örnek verecek olursak:
//Eğer Boşsa
if edit1.text='' then showmessage('şifre giriniz')
else
//Eğer Yanlışsa
if edit.text <> Password.FieldByName('Parola').asstring then
showmessage('parola yanlış)
else
//Eğer Doğruysa
if edit1.text = Password.FieldByName('Parola').asstring then
Anaform.Show;
PasswordForm.Hide;
Şahsım adına bu şekilde kullanıyorum zaten bu şifrenin amacı yönetici haricinde herkesin programa girmesini engellemek.
Kolay Gelsin...
Edit'in OnChange event'ine şu kodları yazarsanız işiniz görülebilir:
procedure TForm1.Edit1Change(Sender: TObject);
var
St: string;
begin
St := Edit1.Text + 'AAA';
Button1.Enabled := (Length(St) >= 8 + 3) and (St[1] in ['0'..'9']) and (St[2] in ['0'..'9']) and (St[3] in ['0'..'9']);
end;
üstad çok saol parmaklarına sağlık. bu olay ne kadar kolaymış.. ben de farklı yoldan denemiştim ama iç içe for döngülerinden çıkamamıştım...
Çok Saol Tekrardan...