Entwickler-Ecke
Sonstiges (Delphi) - Text in aktuelle Cursor Zeile einfügen
snakeweb - So 10.11.02 14:59
Titel: Text in aktuelle Cursor Zeile einfügen
Hallo,
ich möchte in einem Memo Feld, in dem ein Text steht, einen vorgegebenen Text in der aktuellen Cursor Zeile einfügen.
Ein Memo Feld, einen Button, dem ich den Text
Delphi-Quelltext
1: 2: 3:
| procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.add ('Neu') |
hinterlegt habe, habe ich schon eingefügt.
Nur wie ich jetzt den Text in der Cursor Zeile einfüge, weiß ich nicht. Bei mir wird der Text immer in der letzten Zeile unter dem schon geschriebenen Text eingefügt
Bitte schreibt den Quelltext mit dabei
Danke! :-)
(10.11.02 23:49 Tino) Code-Tags hinzugefügt.
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.
Christian S. - So 10.11.02 15:27
Hi!
Ich bin mir nicht ganz sicher, ob es das ist, was Du brauchst, aber folgende beiden Codes fügen an der Cursorposition einen Text ein.
Delphi-Quelltext
1: 2: 3:
| Memo1.text:=Copy(Memo1.Text,1,Memo1.SelStart) +'Hallo' +Copy(Memo1.Text,Memo1.SelStart+1,Length(Memo1.Text)-Memo1.SelStart+1); |
und (mit VAR temp : STRING):
Delphi-Quelltext
1: 2: 3:
| temp:=Memo1.text; Insert('Hallo',temp,Memo1.SelStart+1); Memo1.text:=temp; |
Wenn Du eine ganze Zeile einfügen möchtest, solltest Du Dir mal die Prozedur Memo1.Lines.Insert anschauen. Wie Du herausfindest, in welcher Zeile sich der Cursor befindet, wurde hier im Forum schon mal behandelt (glaube ich zumindest).
MfG,
Peter
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.
Sonny - Mo 06.06.05 15:54
Hallo!
Gibt es auch eine Möglichkeit, wie man mit dieser Methode mehrere Zeilen in das Memofeld ab Cursorposition einfügen kann? Mit einem CHR Wert für Zeilenumbruch in der Stringkette funktioniert es nämlich nicht. Also beispielsweise wenn der Cursor in der Leerzeile zwischen Zeile 3 und 4 steht sollen an dieser Stelle Za, Zb, und Zc eingefügt werden:
Vorher:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| Zeile 1 Zeile 2 Zeile 3 <<<<<<<<<<HIER STEHT DER CURSOR Zeile 4 Zeile 5 Zeile 6 |
Klick auf Button soll dann das bewirken:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Zeile 1 Zeile 2 Zeile 3 Za Zb Zc Zeile 4 Zeile 5 Zeile 6 |
Mit der Methode hier oben kommt auch wenn ich es wie gesagt mit Absatzzeichen versuche immer sowas raus:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| Zeile 1 Zeile 2 Zeile 3 Za Zb Zc Zeile 4 Zeile 5 Zeile 6 |
Bräuchte also eine Zeilenumbruch Methode wie Memo1.Lines.Add allerdings an der Cursorposition.
Danke schonmal ;)
JayEff - Mo 06.06.05 15:58
versuch mal, an der stelle des zeilenumbruchs ein #10#13 ein zufpgen (nicht im string, sondern etwa so: 'Za'+#10#13+'Zb' )
Sonny - Mo 06.06.05 16:05
Nein das funktioniert leider nicht, das hatte ich auch schon probiert (siehe oben) aber dann sieht der String danach so aus:
EDIT:
OK ich sollte demnächst mal wieder an mehr schlaf denken :roll: Es gibt ja noch mehr Möglickeiten einen Text einzufügen und dann funktioniert das natürlich auch mit dem CHR Codes. Die Lösung des Problems lautet:
Quelltext
1:
| Memo1.SelText := 'Za' + #13#10 + 'Zb' + #13#10 + 'Zc' + #13#10; |
Danke JayEff Du hast mich auf die richtige Spur gebracht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!