Announcement

Collapse
No announcement yet.

Richedit-Teilzeile mit Farbe

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

  • Richedit-Teilzeile mit Farbe

    Arbeite mit (noch mit) Borland Delphi7.
    Wer hat/kennt Befehlscode, um in einem Richedit-Objekt einen Teil einer Textzeile mit anderer Farbe darzustellen?
    Ziel ist, mir einer Schleifenanweisung ein Rechteck farblich zu markieren von Punkt x1,y1 bis x2,y2. Der davor bzw. dahinterstehende Text in der Zeile bleibt normal. Selbstverständlich ist eine proportionale Schrift fest vorgegeben.

  • #2
    http://www.marquardtnet.info/cecke/q...quicky_61.html

    Deine Koordinaten muss du voher dahingehend umrechnen, dass dabei der Start und das Ende des auszuwählenden Textes raus kommt (Breite und Höhe des Font mit den Koordinaten)
    Christian

    Comment


    • #3
      Richedit-Teilzeile mit Farbe

      Lieber Chr.
      geht es etwas genauer? Dein Verweis zeigt C+ Code. Den verstehe ich nur zum Teil. Delphi7 kennt manche Parameter nicht. Die Methode mit Selstart und SelLenght ist mir jedoch bekannt, aber nicht brauchbar (markiert, wenn SelLenght über mehrere Zeilen geht, komplett ganze Zeilen). Ich benötige jedoch ein Rechteck (z.B. jede Zeile nur die Zeichen von 3..7).
      Mit vorliegendem Code kann ich kann zwar innerhalb einer Zeile einige Zeichen markieren (z.B. Selstart setzen und SelLenght:=SelStart+5), in einer Schleifenanweisung werden jedoch Selstart und SelLenght jeweils mit Werten der nächsten Zeile neu gesetzt und am Ende ist nur die letzte Zeile markiert. Allerdings habe ich statt
      Perform(EM_SETCHARFORMAT, SCF_SELECTION,(LPARAM)&cm ); (aus C+Code)
      den Befehl
      Perform(EM_SCROLLCARET, FiLineAct, FiColAct); (Pascal) verwendet, da die Parameter
      EM_SetCharFormat und SCF_Selection, ... in Pascal unbekannt sind.
      Also nochmals: hast Du eine Quelle für lauffähigen Pascal-Code?

      Comment


      • #4
        Hi,

        vielleicht hilft dir auch TRichedit.Selattributes.Assign(TFont) - mit vorheriger (zeilenweiser) Selekttion des Textes.
        Ist zwar auch etwas Rechnerei, aber für den Anfang vielleicht übersichtlicher als die API Variante von Christian.
        Viel Erfolg!

        Tino
        Ich habs gleich!
        ... sagte der Programmierer.

        Comment


        • #5
          Der C++Builder und Delphi benutzen das gleiche Framework nämlich die VCL. Insofern sind / müssen die Parameter identisch sein.

          EM_SETCHARFORMAT ist eine Windowsmessage und muss zwangsläufig auch überall bekannt sein.

          Des Weiteren kannst du kein "Rechteck" bearbeiten. Textformatierungen sind über das Markieren, setzten von Formaten, Markierung aufheben zu realisieren. Wenn du das für mehrere Abschnitte in deinem Text brauchst, dann ist das iterativ durchzuführen

          Wie ich geschrieben habe musst du dein Rechteck in entsprechende Abschnitte von Markierungen umsetzen.

          Aufgrund deiner wenigen Informationen (auf welche Element bezieht sich das Rechteck? Was für Werte? Pixel?) wird man wohl hier keinen Code posten können
          Christian

          Comment

          Working...
          X