bei enter in teditfeld ertönt ein pling



  • und wieder ein problem..
    entweder ich bin zu blöd, die hilfe und die suchfunktion zu verwenden, oder es gibt wirklick nix darüber..

    habe ein teditfeld, bei drücken der entertaste in diesem feld wird eine aktion ausgeführt (senden von text).

    void __fastcall Tchat::EingabeEditKeyPress(TObject *Sender, char &Key)
    {
     if (Key == VK_RETURN)
      {
       if ( ClientSocket->Active == true)
        {
         if (EingabeEdit->Text.IsEmpty() == false)
          {
           ClientSocket->Socket->SendText(EingabeEdit->Text);
           EingabeEdit->Clear();
          }
        }
        else
         {
          ChatLogRichEdit->Lines->Add("( Nicht verbunden )");
          EingabeEdit->Clear();
         }
    
      }
    }
    

    also jedesmal, wenn ich enter drücke, kommt so ein pling (ich nehme mal an, einer dieser windoof standardtöne). 🙄
    und ich bin wieder zu doof, herauszufinden, woran das liegt..
    ich könnte natürlich komplett den windows sound ausschalten, aber das will ich nicht.
    hat jemand ne idee, woher der ton kommt und wie ich ihn abstellen kann?

    mfg

    kesh, die hoffentlich nicht nervt



  • Versuch's mal damit:

    void __fastcall Tchat::EingabeEditKeyPress(TObject *Sender, char &Key)
    {
     if (Key == VK_RETURN)
      {
       if ( ClientSocket->Active == true)
        {
         if (EingabeEdit->Text.IsEmpty() == false)
          {
           ClientSocket->Socket->SendText(EingabeEdit->Text);
           EingabeEdit->Clear();
          }
        }
        else
         {
          ChatLogRichEdit->Lines->Add("( Nicht verbunden )");
          EingabeEdit->Clear();
         }
    
        Key = 0;
      }
    }
    


  • oder einfach mal die suchfunktion benutzen (o;

    Btw: Brainchild: Wenn du schon usinnigerweise die ganze Lösung pfannenfertig posten musst, dann erklär wenigstens WAS genau den Pling verhindert. Denn eigentlich wär genau 1 Zeile zu posten gewesen.

    -junix

    [ Dieser Beitrag wurde am 15.04.2003 um 08:59 Uhr von junix editiert. ]



  • hmm.. also das funzt.. aber ne erklärung wär wirklich net schlecht..
    und junix, wenn du mir erklärst, nach welchen worten ich hätte suchen sollen, dann hätte ich es sicher gefunden.. 😉

    mfg kesh



  • der ganze witz liegt an der zeile:

    Key = 0;



  • Such mal nach "pling" (o;

    Also was die Erklärung betrifft: Du bekommst bei den OnKey*-Events immer eine Referenz auf die Variable "Key". Das heisst du änderst den Wert nicht nur für innerhalb der Funktion sondern auch den Wert in der aufrufenden Funktion. Das heisst du kannst also ohne Probleme den tastendruck manipulieren.

    Angenommen du möchtest das B durch A ersetzen, dann wäre eifnach eine if in folgendem Stil nötig:

    if (Key == 'A')
        Key = 'B';
    else if (Key == 'B')
        Key = 'A';
    

    Das Control glaubt dann immer wenn die Taste A gedrückt wurde, dass die taste B gedrückt wurde und umgekehrt. 0 ist keine gültige Taste und wird somit vom Control ignoriert.

    Ich hoffe du verstehst was ich versucht habe auszudrücken (o;

    -junix



  • naja.. bin net ganz dahintergestiegen, aber habs einigermaßen verstanden..
    hauptsache, es funkioniert..
    hab nach allem möglichen gesucht, aber auf 'pling' bin ich nich gekommen.. *schäm*
    thx

    kesh


Anmelden zum Antworten