Announcement

Collapse
No announcement yet.

TRichEdit-Seitenvorschub u.v.m

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TRichEdit-Seitenvorschub u.v.m

    Fragen über Fragen!<br>

    Gibt es eine Möglichkeit im Editor(TRichEdit) einen Seitenvorschub zu plazieren?<br>
    Desweiteren suche ich noch eine Möglichkeit die Zeile und Spalte abzufragen,<br>
    in der sich der Cursor befindet. Ich habe bis jetzt nichts in der Hilfe gefunden.<br>
    Wie bekomme ich die Mausposition raus, da ich auf Editor->GetCaretPos nicht<br>
    zugreifen darf?<br>

    <br>
    Gruß Fred

  • #2
    Hallo Fred!

    Bei Zeile ermitteln kann ich Dir helfen

    do
    { laenge = laenge+Memo1->Lines->Strings[x].Length()+2;

    x++;

    }while(laenge<Memo1->SelStart);

    Die Zeile ist dann in x enthalten. SelStart gibt die aktuelle Position an, damit müßte irgendwie auch die Spalte zu ermitteln sein, denke ich mir zumindest mal.

    Gruß Irmgar

    Comment


    • #3
      Hi Irmgard!<br>

      Danke für den Tip.<br>
      Nun stelle Dir aber mal vor, Deine Datei ist >200KB<br>
      und Du möchstest Zeile und Spalte anzeigen(Statusleiste).<br>
      Ist man ständig in der Schleife.<br>
      TRichEdit ist nicht das gelbe vom Ei.<br>
      Der Editor von Turbo Vison hatte da bessere Funktionen zu bieten.<br>

      <br>

      have a nice weekend<br>

      fre

      Comment


      • #4
        Na ja, hättest Du auch gleich sagen können!

        Danke, ebenfalls schönes Wochenende!

        Gruß Irmgar

        Comment


        • #5
          hiermit kriegst du die Zeile:Spalte als AnsiStrig

          AnsiString __fastcall TMyRichEdit::GetCursorPos(void)
          {
          long lLine, lCol;
          long lChar, I;
          AnsiString Pos;

          lChar = SelStart + 1; // erste Position ist 1 nicht 0
          // Zeile wo der Cursor steht
          lLine = 1 + SendMessage(Handle, EM_LINEFROMCHAR,SelStart, 0);
          // das erste Zeichen in der aktuellen Zeile
          I = SendMessage(Handle, EM_LINEINDEX, lLine - 1, 0) ;
          lCol = lChar - I; // Spalte wo der Cursor steht

          Pos = IntToStr(lLine) + " : ";
          Pos += IntToStr(lCol) + " ";

          return Pos;

          Comment


          • #6
            Hi JayZzz! // toller Name!<br>

            Selbige Funktion habe ich letzte Woche auch in meinen<br>
            alten Büchern gefunden.<br>
            Trotzdem danke.<br>

            Gruß Fre

            Comment


            • #7
              Um welche Bücher handelt es sich?
              Man machst Du es Dir einfach, ich saß ca. 30min dran und jetzt die Entäuschung :-)

              Gruß
              JayZz

              Comment

              Working...
              X