Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
|
Re: Memo -> RichEdit mit FormatÜbergabe
13. Sep 2004, 19: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 = 'C' then
begin
format := Copy(memo.Text, Pos('=', memo.Text) + 1, Pos(']', memo.Text) - 8);
if format = 'BLUE' then 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;
|
|
Zitat
|