TEdit Cursorposition ermitteln



  • Hi,

    Mit welcher Funktion kann ich bei einem Edit feld die Cursorposition ermitteln bezeihungsweise setzen

    MfG



  • Hallo

    siehe die Eigenschaften TEdit::Sel* in der Builder-Hilfe.

    bis bald
    akari



  • Hi,

    die Sel eigenschaften beziehen sich doch nr auf den markierten Text und nicht auf die Cursorposition.

    MfG



  • maikhaenig schrieb:

    Hi,

    die Sel eigenschaften beziehen sich doch nr auf den markierten Text und nicht auf die Cursorposition.

    MfG Maik

    in der hilfe lesen würde helfen, da steht das hier:
    Ist kein markierter Text vorhanden, bezeichnet SelStart die Position des Cursors



  • danke

    dieser Satz ist mir anscheinend entgangen.

    MfG



  • maikhaenig schrieb:

    danke

    dieser Satz ist mir anscheinend entgangen.

    MfG Maik

    anscheinend 🕶



  • //dummes Beispiel: maximal 4 Zeichen und kein '.' erlaubt
    void __fastcall TFORM_Example::Edit1Change(TObject *Sender)
    {
      int i, len, start;
      char c;
      AnsiString newText;
      newText = "";
      start = Edit1->SelStart;
      len = Edit1->Text.Length();
      if (len > 4) len = 4;
      for (i = 1; i <= len; i++) {
        c = Edit1->Text[i];
        c = toupper(c);
        if (c != '.') {
          newText += c; //Edit1->Text.Delete(i,1);
        }
        else {
          start = newText.Length();
        }
      }
    
      //ohne dass man Enabled auf false setzt gehts ein bischen zu rekursiv zu
      Edit1->Enabled = false;
      Edit1->Text = newText;
      Edit1->Enabled = true;
    
      Edit1->SetFocus(); 
      Edit1->SelStart = start;
      Edit1->SelLength = 0;
    }
    //---------------------------------------------------------------------------
    

Log in to reply