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