Moinsen!
Ich stehe hier vor einem problem zu dem ich keine einzige lösung gefunden habe. Ich möchte
einen bestimmtes wort in einer memo ersetzen ohne die darauf folgenden chars zu
verschieben!
Beispiel:
(in der memo steht)
"Guten tag </name/> und so weiter"
- </name/> wird durch den text der in einer edit steht ersetzt! wenn ich jetzt z.b. in der
edit "Klaus Mustermann" stehen habe soll der </name/> dadurch ersetzt werden und das "und
so weiter" überschrieben werden und NICHT vorgerückt werden. quasi wie der einfügemodus.
im netz und usenet habe ich eine routine gefunden und im onchange von der memo angewendet,
allerdings funtioniert dieser code nur wenn man direkt in die memo schreibt und nicht wenn
man per replaceall bestimmte tags ersetzen lässt!
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Memo1Change(Sender: TObject); begin if (Sender is TCustomEdit) and Odd(GetKeyState(VK_INSERT)) then with TCustomEdit(Sender) do if SelLength = 0 then begin SelLength := 1; if (SelLength > 0) and (SelText[1] = #13) then SelLength := 2; end; end;
procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Text := StringReplace(Memo1.Text ,'</name/>',edit1.Text,[rfReplaceAll]); end; |
Ich bin für jede hilfe dankbar!
M.f.G
Honk!