eine kurze frage zu den Edit feld...



  • Hallo

    ich habe nochmal eine Frage. Ich möchte eine Edit1 feld erstellen und wenn ich die nummer 3000 reinschreibe in den Edit1 feld soll eine pdf Datei aufgehen.

    Ich dachte mit einer if anweisung jedoch bekomme ich das net hin ...

    dachte das es so klappen könnte

    if (Edit1 == 3000); (ShellExecute(NULL,"open","C:\\data\\3000.pdf",NULL,NULL,SW_NORMAL);

    ich würd mich freun wenn mir jemand helfen würde bin leider noch ein anfänger hoffe mir kann das jemand erklären das ich es auch verstehe 🙂

    Danke Leute schönen Abend noch Malcolm18 🙂



  • HWND hEdit = GetDlgItem(hDlg, ID_EDIT1);
      TCHAR szEdit[100];
      GetWindowText(hEdit, szEdit, 100);
      TCHAR szBuffer[100];
      _stprintf(szBuffer, _T("C:\\data\\%s.pdf"), _T("3000"));
      ShellExecute(NULL, "open", szBuffer, NULL, NULL, SW_NORMAL);
    


  • Hi

    das is sehr nett von dir leider bin ich anfänger und so wie du es geschrieben hat geht der code net 😞 vill. kann man das so schreiben das ich das verstehe?? würd mich echt freuen danke dir

    bye Malcolm18



  • - Nach der IF-Bedingung darf kein Strichpunkt stehen!

    - Der bei erfüllter Bedingung auszuführende Code wird in geschweiften Klammern geschrieben (bei einer einzelnen Zeile könnte man die aber auch weglassen).

    if (Edit1 == 3000)
    {
       ShellExecute(NULL,"open","C:\\data\\3000.pdf",NULL,NULL,SW_NORMAL;
    }
    


  • Noch ein Fehler: Um den Inhalt des Textfeldes zu erhalten muss die Eigenschaft Text geprüft werden.

    if (Edit1->Text == 3000)
    {
       ShellExecute(NULL,"open","C:\\data\\3000.pdf",NULL,NULL,SW_NORMAL);
    }
    

    P.S. Ich sollte mich vielleicht registrieren, dann klappts auch mit dem Editieren 😉



  • Klingt gut so wollte ich es ja haben nur kommt da diese Fehler meldung:

    [C++ Fehler] Unit1.cpp(22): E2034 Konvertierung von 'int' nach 'TEdit *' nicht möglich

    [C++ Fehler] Unit1.cpp(24): E2121 ) fehlt beim Funktionsaufruf

    hmm 😞 das geht net 😞



  • Ok ich habs gesehen "text"

    zeigt kein fehler mehr an aber es geht auch net wenn ich im edit1 feld onenter und dann den code gebe if (Edit1->Text == 3000)
    {
    ShellExecute(NULL,"open","C:\\data\\3000.pdf",NULL,NULL,SW_NORMAL);
    }

    weist du woran das liegen kann???

    danke malcolm



  • Richtig wäre dann:

    if (Edit1->Text == "3000")
    {
    }
    

    Durch die Anführungszeichen wird jetzt die Zeichenkette aus Edit1->Text mit der Zeichenkette "3000" verglichen.
    Anhand deiner Fehlermeldung meine ich auch, daß du das '->Text' vergessen hast.

    Viel Erfolg und noch viel Spass beim C lernen.



  • So ein letztes mal frag ich noch dann hab ich auch keine lust mehr -.-

    ich habe das jetzt so geschrieben

    if (Edit1->Text == "3000")
    {
    ShellExecute(NULL,"open","C:\\data\\3000.pdf",NULL,NULL,SW_NORMAL);
    }

    oder if ((Edit1->Text == "3000"))
    {
    ShellExecute(NULL,"open","C:\\data\\3000.pdf",NULL,NULL,SW_NORMAL);
    }

    selbst

    if ((Edit1->Text =="ende"))
    {Form1->Close();
    }
    geht nicht was ich falsch mach keine ahnung 😕 😮

    es wäre super wenn es klappen würde das is echt wichtig 😞 hoffe wirklich das jemand mir nochmal helfen kann...

    Danke malcolm19



  • Der Code hier sieht richtig aus und sollte auch funktionieren:

    if ((Edit1->Text =="ende"))
    {Form1->Close();
    }
    

    Wahrscheinlich steht dein Code nicht an der richtigen Stelle, so daß er gar nicht durchlaufen wird. Du kannst den Code ja mal auf einen Button legen und dann testen. Eine andere Stelle, wo der Code sinnvoll wäre, ist das OnExit-Ereigniss des Edit-Feldes.



  • Malcolm19 schrieb:

    geht nicht was ich falsch mach keine ahnung 😕 😮

    könnte darin liegen das du im falschen forum bist 😉 ➡ borland forum


Anmelden zum Antworten