Einzelnen Beitrag anzeigen

Benutzerbild von Tyler
Tyler

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

Re: Memo -> RichEdit mit FormatÜbergabe

  Alt 13. Sep 2004, 18:00
Danke Stevie!

Mich in den Artikel einzuarbeiten, dazu war ich dann doch zufaul... lieber ne Nacht drüber schlafen, und folgendes produziert

Jetzt muss ich nur noch die Farben und Formate einpflegen, und der Parser steht... in seinen Grundzügen

Delphi-Quellcode:
procedure Tf_main.Button1Click(Sender: TObject);
var
eingabe, format, temp : String;
begin
// abc[COLOR=BLUE]TEsdfdsXT[/COLOR]abc[COLOR=RED]TE3432332rsdfXT[/COLOR]
  repeat
    // IF-SCHLEIFE UM UNFORMARTIERTEN TEXT DIREKT AN DIE RICHEDIT-K WEITER ZU GEBEN
    if Copy(memo.Text, 1, 1) = '[then
    begin
      eingabe := Copy( memo.Text, Pos(']', memo.Text) + 1, Pos('/', memo.Text) - (Pos(']', memo.Text) + 2));
      temp := richVorschau.Text;
      richVorschau.lines.Add(eingabe);
      richVorschau.SelStart := length(temp);
      richVorschau.SelLength := length(eingabe);

      format := Copy(memo.Text, Pos('[', memo.Text) + 1, 1);
      if format = 'Cthen
      begin
        format := Copy(memo.Text, Pos('=', memo.Text) + 1, Pos(']', memo.Text) - 8);
        if format = 'BLUEthen richVorschau.SelAttributes.Color := clBlue;
        if format = 'RED'  then richVorschau.SelAttributes.Color := clRed;
      end;

      temp := memo.Text;
      Delete(temp, Pos('[', temp), Pos(']',temp) + Length(eingabe));
      Delete(temp, Pos('[', temp), Pos(']', temp));
      memo.Text := temp;
      i := i + Length(Eingabe);
      Caption := Format;
  end else
  // HIER WIRD DER UNFORMATIERTE TEXT BEHANDELT (IM BEISPIEL OBEN: ABC-TEIL VORNE UND MITTIG)
  begin
    eingabe := Copy(memo.Text, 0, Pos('[', memo.Text) - 1);
    richVorschau.Lines.Add(eingabe);
    temp := memo.Text;
    Delete(temp, 1, length(eingabe));
    memo.Text := temp;
  end;
  until Length(temp) < 1;
end;
  Mit Zitat antworten Zitat