AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Memo Text ersetzen (ohne verschieben)

Ein Thema von Honk · begonnen am 17. Mär 2003 · letzter Beitrag vom 17. Mär 2003
Antwort Antwort
Honk

Registriert seit: 17. Mär 2003
3 Beiträge
 
#1

Memo Text ersetzen (ohne verschieben)

  Alt 17. Mär 2003, 09:53
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!

Delphi-Quellcode:
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!

[edit=Sakura]Text formatiert[/edit]
[edit=Daniel B]Delphi-Tags gesetzt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#2
  Alt 17. Mär 2003, 12:57
Hallo,
also bei mir Funkt der Code nur, wenn ich </name/> ins Memo schreibe, und danach mit dem Button 'Button2Click' ausführe, das ist auch O.K. so.

lt. OH wird onChange nur aktiv wenn der Text im Memo verändert wird, d.h. Du kannst nicht zugleich den Text vom Edit ändern und im Memo auf onChange warten, oder verstehe ich etwas falsch ?
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#3
  Alt 17. Mär 2003, 12:58
weiss nicht ob dieses geht (oder deinen Wünschen entspricht) :
Delphi-Quellcode:
procedure TMainForm.ButtonReplaceClick(Sender: TObject);
var
  s : String;
  p : Integer;
  t : String;
const
  r = '</name/>';
begin
  s := EditReplaceText.Text;
  t := Memo.Lines.Text;
  p := Pos(r,t);
  if p > 0 then
  begin
    Delete(t,p,length(s)+1);
    Insert(s,t,p);
    Memo.Lines.Text := t;
  end;
end;
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 17. Mär 2003, 13:10
Alles klar,

hab wohl etwas übersehen
Zitat:
überschrieben werden und NICHT vorgerückt werden
aber der Code im onChange ist mir trotzdem nicht geheuer
sollte aber mit Mirilin's Ansatz gelöst sein, oder?
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz