Tek Edit de Kullanıcı ve şifre kaydı....

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Tek Edit de Kullanıcı ve şifre kaydı....

Mesaj gönderen Berdem »

Merhaba Arkadaşlar,
Labelların yönlendirmesi ile çalışan edit girişi yapmaya çalıştım.Kısmen yapabildim...Ama tam istedigim gibi olmadı...

Kod: Tümünü seç

 procedure TForm7.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  ara: boolean;
begin
  if p = 0 then
  begin
   Label1.Caption := 'Kullanıcı Adınızı Yazdıktan ' + #13 + #10 + 'Sonra Enter Tuşuna Basınız..';
    p := 1;
  end;
  if (Key = #13) then
  begin
    if FileExists('C:\Program Files\Dogum\Kullanici.cds') = True then
    begin
      ClientDataSet1.LoadFromFile('C:\Program Files\Dogum\Kullanici.cds');
      ClientDataSet1.Open;

      if (no = 0) and (ClientDataSet1.Locate('Kullanici', Edit1.Text)), []) = false)
        then
      begin
        Label2.Blinking := False;
        Label1.Caption := 'Kullanıcı Adı Yalnış.';
        Edit1.text := '';
        exit;
      end;

      if (no = 5) and (yal = 1) then
      begin
        Label2.Blinking := False;
        Label1.Caption := 'Şifre Yalnış.' + #13 + #10 + 'Kullanıcı Adınızı Giriniz.';
        Label3.Caption := '';
        Edit1.text := '';
        Edit1.PasswordChar := #0;
        yal := 0;
        no := 0;
        Exit;
      end;

      if (no = 0) and ClientDataSet1.Locate('Kullanici', Edit1.Text, [])
        then
      begin
        Label2.Blinking := True;
        Label1.Caption := 'Şifrenizi Giriniz.';
        Label3.Caption := ClientDataSet1.FieldByName('Adi').AsString
          + ' ' + ClientDataSet1.FieldByName('Soyadi').AsString;
        bert := RzEdit1.Text;
        Edit1.Text := '';
        Edit1.PasswordChar := '*';
        no := 5;
      end;

      if (no = 5) then
      begin
        ara := ClientDataSet1.Locate('Kullanici;Sifre', vararrayof( bert,Edit1.Text), []);
        if ara then
        begin //kullanıcı dogru şifre doğru    k1s1 ise
          user := ClientDataSet1.FieldByName('Adi').AsString
            + ' ' + ClientDataSet1.FieldByName('Soyadi').AsString;
          Form1 := TForm1.Create(nil);
          Form7.Top := 3000;
          Form1.ShowModal;
        end
        else
        begin
         yal:=1;
         exit;
        end;
      end;
    end
    else
    begin
      ShowMessage('Kullanıcı dosyanız silinmiş olabilir..!!!');
    end;
  end;
end;
Öncelikle kullanıcı adınızı giriyorsunuz doğru ise şifre istemi oluyor.Şifre dogru ise form açılıyor.. Yalnış ise kullanıcı adını tekrar istiyor.(if (no = 5) and (yal = 1) then) satırından itibaren....Arkasından tekrar şifre istiyor ve şifreyi dogru girdiğiniz halde yalnış hatası alıyorsunuz....
(if ara then) satırını kontrol ettim doğru çalışıyor...
else
begin
yal:=1;
exit;
end;
bölümünü kaldırdığınızda ise kodalr çalışıyor...Yalnış şifre girdiğinizde istediğim tarzda olması engelleniyor... :D Yardımlarınızı bekliyorum.Saygılarımla...
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

Bence olayı editin keypress olayına değil de onchange olayına yaz.
boolean değişkenler tanımla. mesela

Kod: Tümünü seç

sirfedogrugirildi : booleand =false;
kullaniciadidoğrugirildi : boolean = false; 
gibi
booleandlarla olayı kontrol edebilirsin.
kolay gelsin
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Çok Teşekkürler @nitrokonat onchange olayını denedim olmadı.Dediginiz gbi boolean uygulamıştım.Sanırım bir sıralamada bir hata yapıyorum...
Cevapla