Einzelnen Beitrag anzeigen

Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#1

Memo -> RichEdit mit FormatÜbergabe

  Alt 6. Sep 2004, 19:41
Schönen guten Abend

in einer MemoBox soll der Text individuell mit verschiedenen Tags markiert werden.
Vergleichbar den HTML-Tags oder ForenCode, also beispielsweise einleitend
und schliessend

Die Attribute des Textes stehen also im Klartext dar.

Gleichzeitig will ich in einem RichEdit genau den gleichen Text nur OHNE die Tags und stattdessen mit der fertigen Formatierung anzeigen lassen. Also quasi ein Vorschaufenster.

Nur leider komm ich damit nicht ganz zurecht.

Das Einfügen der Formatierung ist klar... einfach das ganze Feld oder den selektierten Text mit den Tags oder Attributen versehen. Je nachdem ob ich direkt die Vorschau bearbeite oder die MemoBox.

Nur der Abgleich.

Ich habs schon vom Memo ins RichEdit versucht.

MemoInhalt temporärer Variable zuweisen
in einer for-to-Schleife die Variable durchlaufen und nach Schlüsselzeichen absuchen
dann eine Flag setzen, das eine z.B. Farbcodierung beginnt
jetzt müsste eigentlich der CodeTag der Farbcodierung entfernt werden, wie ist noch unklar
und der Text der jetzt zwischen Starttag und Endtag kommt, müsste als formatierter Text in das Richedit übergeben werden.

Und da haperts. Im Moment bin ich soweit:

Delphi-Quellcode:
  richVorschau.Text := memoEingabe.Text;
  j := 0;
  k := 0;
  tempEin := memoEingabe.Text;
  for i := 0 to Length(tempEin) do
  begin
    if flag = 1 then
      begin
      if Text[i] = 'Cthen k := 2;
      if Text[i] = 'Othen k := 3;
      if Text[i] = 'Lthen k := 4;
      if Text[i] = 'Othen k := 5;
      if Text[i] = 'Rthen k := 6;
      if Text[i] = '=then k := 7;
      richVorschau.SelStart;r
      flag := 0;

    if Text[i] = '[then
    begin
      k := 1;
      flag := 1;
    end;
    k := i + k;

    if flag = 0 then richVorschau := richVorschau + tempEin[k];
    i := i + 1 + k;
    k := 0;
  end; }
sieht sehr wirr aus, ich weiss.... aber dürfte seinen Dienst schonmal verrichten, glaub ich....

jemand ne Idee wie ich das bewerkstelligen könnte?

Bin für jeden Tip dankbar

tyler
  Mit Zitat antworten Zitat