PW abfrage



  • also....
    das hier ist der quellcode:

    //---------------------------------------------------------------------------
    #include <vcl\vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma resource "*.dfm"
    TForm1 *Form1;
    int pw=123;
    int passwort;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::PasswortChange(TObject *Sender)
    {
    cin >> passwort;
    
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    if( passwort == pw)
    Label1->Caption = "richtig";
    else Label1->Caption = "falsch";
    }
    

    Auch wenn das Pw richtig ist, zeigt er mir falsch an!
    an was leigt das?



  • Das liegt sicherlich daran, dass in passwort nie etwas (sinnvolles) eingelesen wird.
    cin funktioniert bei fensterbasierten Anwendungen nicht. Statt dessen kannst du im aktuellen Beispiel direkt auf die Text-Property des Eingabefeldes zugreifen (vorausgesetzt, Passwort ist ein TEdit o.ä.).

    Was in passwort tatsächlich drinsteht kannst du dir übrigens ansehen, wenn du deinen Code mal im Debug-Modus durchgehst.

    Und noch eine Anmerkung: es ist in Bezug auf die Lesbarkeit des Codes äusserst ungünstig, Variablennamen zu verwenden, die sich nur durch Gross- und Kleinschreibung einzelner Buchstaben unterscheiden (passwort vs. Passwort).



  • danke Jansen!

    könntest du mir mal einen Lösungsvorschlag sagen???

    ich mach noch nicht lange was mit borland!



  • Wie gesagt, die Text-Property auswerten. Statt OnChange benutzt du besser das OnKeyPress-Event, da prüfst du dann erst noch auf die Entertaste, um festzustellen, ob der Benutzer mit der Eingabe fertig ist:

    if (Key == VK_RETURN && StrToInt(Passwort->Text) == passwort)
      ShowMessage("Access granted");
    else
      ShowMessage("Access denied");
    

    Ansonsten sei dir zB. das Texteditor-Tutorial aus der Hilfe an's Herz gelegt, um dir ein grundlegendes Verständnis vom Programmieren mit dem BCB zu vermitteln.


Anmelden zum Antworten