Anzahl Zeichen in einer Zeile



  • Hi!

    Ich hab ein RichEdit und möchte die Anzahl an Zeichen aus jeder Zeile holen.

    Das mach ich so:

    int lange = m_RichEdit.LineLength(0);
           lange = m_RichEdit.LineLength(1);
    

    Das Problem hier ist, dass die Variable lange keinen neuen Wert zugewiesen bekommt.
    Weiß jemand was hier nicht stimmt??



  • Womöglich hast du keine Zeile 2 in dem Control (vorher per per GetLineCount() überprüfen) - oder die ersten beiden Zeilen sind tatsächlich gleich lang.

    PS: Wie stellst du eigentlich fest, daß "lange keinen neuen Wert zugewiesen bekommt"?



  • Naja, ich hab darauf geachtet, dass die Textzeilen unterschiedlich lang sind( hab ich mit m_RichEdit.ReplaceSel("Text") bewerkstelligt).
    Mit dem Debugger hab ich festgestellt, dass sich aber die Variable lang nicht ändert. Daraus schließ ich mal, dass die Variable keinen neuen Wert zugewiesen bekommt.
    Überhaupt stimmt die Anzahl an Zeilen.

    Überhaupt möcht ich noch sagen wie super ich dieses Forum finde.
    Kaum hat man einen Post gemacht, kommt auch schon eine Antwort 🙂



  • Überhaupt möcht ich noch sagen wie super ich dieses Forum finde.
    Kaum hat man einen Post gemacht, kommt auch schon eine Antwort

    Okay mit der Aussage war ich wohl ein bisschen zu schnell.

    Ich hab das Problem jetzt anders gelöst.

    Kann mir wenigstens jemand sagen, wie ich eine Selektion wieder loslasse?

    Also das gegenteil von SetSel().



  • Irgendein Punkt deines Editfeldes ist auf jeden Fall selektiert (im Zweifelsfall nur die Stelle, an der dein Cursor steht). Du kannst aber einen leeren Bereich angeben (Start=Ende), dann wird nichts markiert.

    PS: CEdit::SetSel() schluckt auch -1 als Startkoordinate (und hebt dabei die Markierung auf), bei CRichEditCtrl::SetSel() steht leider nichts dazu in der Dokumentation.

    PPS: Du könntest auch per HideSelection die Selektion "unsichtbar" schalten.



  • SetSel(-1,-1) springt hinter das letzte Zeichen in der letzten Zeile.

    MfG,
    Paul.


Anmelden zum Antworten