• 13-10-2010, 20:20:25
    #1
    Merhaba arkadaşlar

    vb'de ufak bir programcık yazmaya çalışıyorum. Kullanıcıdan bir inputboxle şifre istiyorum ve kullanıcı doğru şifre yazarsa program sorunsuz açılacak ve yanlış yazarsa kullanıcıya 3 hak sunacak 3 kez şifresini isteyecek. 3 kezde doğru yazamazsa programı kapatacak. Şimdi bunu if ve for ile yapmak istiyorum. 3 kez tekrarlama için for doğru yanlış olayı içinde if. Şu şekilde bir kod yazdım.

            Dim kutu, sifre As String
            Dim i As Short
    
            sifre = "123"
            kutu = InputBox("Şifre Giriniz")
    
            For i = 1 To 3
                If kutu = sifre Then
                    MsgBox("Tebrikler! Programa Hoşgeldiniz.")
                Else
                    MsgBox("Hatalı Şifre Girdiniz. Lütfen Tekrar Deneyiniz.")
                End If
            Next
    Şimdi forun içersindeki kodları 3 kez çalıştırıyor. Ve ben ifle kontrol yapıyorum yani düşüncem şu bakıcak şifre kutu ile aynımı aynıysa tebrikler dicek değilde hatalı dicek sonra başa dönecek gene aynı kontrolü yapacak. Ama böyle olmuyor if kontrolunu forun içinde yapmıyor. Diyelim şifre doğru 3 kez ekrana msgbox tebrikler basıyor. Yada yanlışsa 3 kez ekrana hatalı şifre basıyor.

    Nerde hata yapıyorum ? Lütfen kod vermeden hatamın nerde olduğunu hangi mantıkla gitmem gerektiğini söyleyebilirmisiniz ?
  • 13-10-2010, 21:01:46
    #2
                   Dim kutu, sifre As String
            Dim i As Integer
    
            sifre = "123"
    
            For i = 1 To 3
                kutu = InputBox("Şifre Giriniz")
                If kutu = sifre Then
                    MsgBox("Programa Hoşgeldiniz!")
                    Exit For
                Else
                    MsgBox("Hatalı Şifre Girdiniz. Lütfen Tekrar Deneyiniz.")
                End If
            Next
    Bu şekilde yaptım ve oldu. Ancak karıştırdığımı düşünüyorum daha basit nasıl yapabilirim ?
  • 13-10-2010, 21:12:23
    #3
    Üyeliği durduruldu
    Forma ekliyeceklerimiz.
    1 Adet Text1, 1 Adet Commandbutton , 1 Adet label

    Private Sub Form_Load()
    Label1.Caption = "3"
    End Sub
    
    Private Sub Command1_Click()
    If Text1.Text = "sifre" Then
    MsgBox ("Programa Hoþgeldiniz!")
    Else
    If Label1.Caption = "0" Then
    MsgBox "Hakkiniz Kalmadi!"
    End
    Else
    Label1.Caption = Label1.Caption - 1
    MsgBox ("Hatalý Þifre Girdiniz. Lütfen Tekrar Deneyiniz.")
    End If
    End If
    End Sub
    Aklima gelenleri yazdim muhtemelen calisicaktir denemedim.

    Edit Kodlari denedim calisiyor.
  • 17-10-2010, 15:35:12
    #4
    Bir tane integer değişken tanımlayacaksın ve kullanıcı her yanlış girdiğinde bu değeri 1 artıracaksın.

    Her kontrolde de o integer değişkenini kontrol edeceksin, eğer o değişken üçe eşitse programı kapatacaksın.

    Koda dökemezsen buradan bildir yardımcı olurum.