Einzelnen Beitrag anzeigen

Reini64

Registriert seit: 3. Mär 2004
Ort: Ulmen
83 Beiträge
 
#1

Richedit Wörteraustauschen

  Alt 13. Jul 2004, 21:54
Hi,

ich habe folgendes Problem mit "Richedit".

ich habe in meinen Richedit meinen Text formatiert und ausgerichtet. Nun möchte ich die eingebauten Platzhalter (z.B. &&name) durch einen anderen Eintrag ersetzen. Ich verwende dazu folgenden Code:

Delphi-Quellcode:
  var
  n,m,k : integer;
  S,S1: string;

  Suchfeld: array[1..12] of string;
  Ersetzenmit: array[1..12] of string;


begin
  suchfeld[1] := '&&anrede';
  suchfeld[2] := '&&vname';
  suchfeld[3] := '&&strasse';
  suchfeld[4] := '&&plz';
  suchfeld[5] := '&&ort';
  suchfeld[6] := '&&name';
  suchfeld[7] := '&&datum';

  Ersetzenmit[1] := dbedit3.Text;
  Ersetzenmit[2] := dbedit1.Text + ' ' + dbedit2.text;
  Ersetzenmit[3] := dbedit4.Text + ' ' + dbedit5.text;
  Ersetzenmit[4] := dbedit6.Text;
  Ersetzenmit[5] := dbedit7.Text;
  Ersetzenmit[6] := dbedit1.Text;
  Ersetzenmit[7] := formatdatetime('DD. mmmm.YYYY', now);

  if OpenDialog1.Execute then
     begin
       F0002_anschreiben.QRRichText1.Lines.LoadFromFile(OpenDialog1.FileName);
     end;
  S := F0002_anschreiben.QRRichText1.Lines.Text;


       for n :=1 to 7 Do
         Begin
           M:= 1;
           K := length(suchfeld[n]);
           while Pos(suchfeld[n], lowercase(S)) > 0 do
             Begin
               M:= M + 1;
               i := Pos(suchfeld[n], lowercase(S));
               if copy(lowercase(S),I,k) = suchfeld[n] then
                 Begin
                   Delete(S,I,k);
                   Insert(Ersetzenmit[n],S,I);
                 end;
               if M = 500 then break;
             end;
         end;



 F0002_anschreiben.QRRichText1.Lines.text := s;
 F0002_anschreiben.QuickRep1.Preview;
Nach diesen Durchgang sind zwar die Einträge geändert worden ab die Formatierung ist weg.

Was mach ich falsch, wie wäre es richtig ?

Dank für Eure Unterstüzung
  Mit Zitat antworten Zitat