Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memo Darstellung verändern (https://www.delphipraxis.net/78454-memo-darstellung-veraendern.html)

bloody.brain 5. Okt 2006 10:13


Memo Darstellung verändern
 
Hi,

vorneweg ich bin nicht gerade der profi programmierer.
Nun zum Problem :

Ich hab ein Programm das Daten aus einer Schnittstelle bekommt und diese in einem Memo darstellt.
Nun würde ich gerne die Darstellung der Daten verändern können. Konkret ich hab ein edit Feld in dem ich z.B "DD" eingebe und dann wird im Memo überall wo das DD vorkommt einmal enter gemacht dahinter.

Mein derzeitiger Code :
Delphi-Quellcode:
begin
  e:=0;
  s:=Memo1.Lines.gettext;
  if edit2.Text <> '' then
  begin
    while(length(s) > length(edit2.Text)) do
    begin
      i:=pos(edit2.Text,s);
      Memo1.SelStart:=i+e;
      Memo1.Lines.Add(#13);
      delete(s,0,i);
      e:=i;
    end;
  end;
end;

Irgendwie bleibt er in der while Schleife hängen und verkleinert den Inhalt von s nicht.
Gibt es vielleicht noch eine einfachere Möglichkeit soetwas zu realisieren ?
Wäre nett wenn mir jemand helfen könnte.

gruss bloody.brain

Klaus01 5. Okt 2006 10:19

Re: Memo Darstellung verändern
 
... wäre das ganze mit StringReplace nicht einfacher zu realisieren.

Grüße
Klaus

Der_Unwissende 5. Okt 2006 10:24

Re: Memo Darstellung verändern
 
Hi,
schau einfach mal in die Hilfe:
Zitat:

Zitat von OH
Wenn index größer als die Länge von String oder kleiner als 1 ist, werden keine Zeichen gelöscht.

Strings sind in Delphi 1 indiziert, nicht 0!

Ansonsten solltest du den Tipp von Klaus01 beherzigen, damit geht es für dich um einiges leichter (du ersetzt alle Vorkommen von Edit2.Text in s durch Edit2.Text + chr(13)).

Gruß Der Unwissende

bloody.brain 5. Okt 2006 10:39

Re: Memo Darstellung verändern
 
Wow das ging schnell.
Danke für die antworten das hilft mir sehr weiter. Ich hab es nun umgeändert in folgendes :

Delphi-Quellcode:
  s:=Memo1.Lines.GetText;
  a:=edit2.text;
  s:=StringReplace(s,a,a+#13,[rfReplaceAll, rfIgnoreCase]);
  Memo1.Text:=s;
Er macht nun auch etwas aber im Memo wird keine neue Zeile erzeugt sondern es wird ein komischer Strich eingefügt.
Woran kann das liegen ?

danke nochmal für eure Hilfe :)


gruss bloody.brain

Klaus01 5. Okt 2006 10:43

Re: Memo Darstellung verändern
 
wenn Du einen Zeilenumbruch einfügen willst, must Du Ctrl LF anfügen
also #13#10.

Grüße
Klaus

bloody.brain 5. Okt 2006 10:47

Re: Memo Darstellung verändern
 
Vielen dank es funktioniert :)

gruss bloody.brain


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 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