Zeiger auf ein Edit-Feld



  • Hallo,

    ich hab da mal eine Frage zu Zeigern auf Eingabefelder.
    Geht das nicht?

    Wenn ich folgendes mache:

    char *p_passwort = NULL;
       p_passwort = Main1->Edit_Passwordfeld->Text.c_str();
    

    dann sehe ich im Debugger für "Main1->Edit_Passwordfeld->Text" den korrekten Text, den ich auch eingegeben habe.
    Unter "p_passwort" aber ist die Eingabe immer abgeschnitten, gefolgt von vier weiteren Zeichen.
    Zum Beispiel Eingabe "abcde" und unter p_passwort zeigt mir der Debugger "abcd\x14" an.

    Wenn ich die Eingabe zuerst einem AnsiString oder einem Char zuweise, dann klappt es.
    Also mit

    AnsiString passwort;
       char *p_passwort = NULL;
    
       passwort = Main1->Edit_Passwordfeld->Text;
       p_passwort = passwort.c_str();
    

    zeigt der Debugger mir auch unter p_passwort die Eingabe korrekt an.
    Ebenso mit

    char passwort[100];
       char *p_passwort = NULL;
    
       strcpy(passwort, Main1->Edit_Passwordfeld->Text.c_str());
       p_passwort = passwort;
    

    zeigt mir der Debugger unter p_passwort die Eingabe richtig an.

    Mache ich bei der Zuweisung des Zeigers auf das Eingabefeld einen Fehler oder geht das gar nicht?





  • Hallo

    Und immer genau überlegen ob du char* bzw. char[] wirklich brauchst. Immer (Ansi-)String verwenden wenn möglich.

    bis bald
    akari


Anmelden zum Antworten