RichEdit automatich einrücken



  • Hey Leute.

    Ich will den Zeileneinschub der vorherigen Zeile nachdem Drücken der EnterTaste in die nächste Zeile zu kopieren. Ich versuche es mit dem Code nur RE[Count]->Lines->Text.LastDelimiter(" "); gibt mir die Leerzeilen der gesamten Zeilen der RichEdit wieder. Also wie kriegich die aktuelle Zeile raus oder ist hab ich einen logischen Fehler.

    void __fastcall TfrmMainStatic::RichEdit1KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
        int Count = PageControl1->ActivePage->TabIndex;
    
        if(Key==VK_RETURN)
          {
            AnsiString temp;
    
            int zae = RichEdit1->Lines->Text.LastDelimiter(" ");
            ShowMessage(zae);
            for(int x=0;x<zae;x++)
               {
                 temp=temp+" ";
               }
            RichEdit1->Lines->Add(temp);
    
          }
    

    Ach ich hab die Eigenschaft WantReturn auf false gesetzt, damit nicht zweimal eine neue Zeile erstellt wird.

    thx mosta.

    [ Dieser Beitrag wurde am 25.04.2003 um 02:30 Uhr von mosta editiert. ]



  • Original erstellt von mosta:
    Also wie kriegich die aktuelle Zeile raus

    TRichEdit::CaretPos

    Und versuch doch bitte, deine Code-Beispiele so zu schreiben, dass man die mittels Copy'nPaste nachvollziehen kann, ohne erst stundenlang Variablen deklarieren oder Namen anpassen zu müssen. Also zB. RichEdit1 statt RE[count].



  • CaretPos gibt aber die Position des Cursors im verhältnis zur RichEdit in Pixeln an und SelStart gibt mir die Position des letzten Zeichen an. Ich weiß nicht worauf du hinaus willst.



  • Hmmm, vielleicht mal beim Augenarzt vorbeischauen? 😉
    Zitat aus der Hilfe:

    CaretPos gibt die X- und Y-Position (in Zeichen und Zeilen) relativ zum Client-Bereich des Memofeldes an.



  • Die Eigenschaft CaretPos gibt die Position des Cursors im Client-Bereich des Memofeldes an.

    __property tagPOINT CaretPos = {read=GetCaretPos};

    Beschreibung

    Mit CaretPos bestimmen Sie die Koordinaten des Cursors. CaretPos gibt die X- und Y-Position (in Pixel) relativ zum Client-Bereich des Memofeldes an.
    Um die Position des Cursors in Textzeichen anstatt in Pixel festzulegen, verwenden Sie die Eigenschaft SelStart.

    Bei mir steht das in der Hilfe



  • Höchste Zeit also, dir eine aktuelle(re) Hilfe zu besorgen.
    Davon abgesehen, Ausprobieren hat noch nie geschadet.



  • Ich will aber doch den Text der aktuellen Zeile haben und nicht den Zeilen Abstand.



  • Deine Frage lautete "wie kriegich die aktuelle Zeile raus" und das geht mit CaretPos. Und über die Zeilennummer kommst du ja wohl auch an den Inhalt (TRichEdit::Lines::Strings).



  • ja und wie heißen die ich find nur heraus das der rückgabewert ein tPoint ist und der hatt die Werte tPoint.x und tPoint.y.



  • Wieviele Threads liefert die Suchfunktion zum Stichwort 'CaretPos', und wieviele davon hast du gelesen?



  • danke hab's hingekriegt.


Anmelden zum Antworten