Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Cursor Position innerhalb eines Memos feststellen?
SunnyDream - Mo 05.06.06 17:31
Titel: Cursor Position innerhalb eines Memos feststellen?
Ich würde wenn es geht gerne feststellen können, in welcher Line eines Memos sich gerade der Cursor des Schreibenden befindet. Ist das möglich? Wenn nein kann ich wenigstens feststellen wieviele Lines ein Memo hat?
Und wenn ich Cursor-Position bzw. Anzahl der Lines kenne, wie kann ich dann etwas in die letzte Line bzw. an die Curserposition einfügen? (Will dort eine Variable ausgeben!)
Arno Nym - Mo 05.06.06 17:43
Hi!
mit Tmemo.CaretPos bekommst du die Position des Cursors im Memo
mit Tmemo.lines.count bekommst du die Anzahl der Zeilen (geht von 0 bis count-1)
du kannst mit lines.insert Zeilen einfügen, oder innerhalb einer Zeile arbeiten in dem du den String der Zeile an der Stelle des Cursors "ausseinanderreist" und etwas einschiebst, und mit der neuen Zeile überschreibst.
MFG, Arno Nym
SunnyDream - Mo 05.06.06 20:16
Also z.B:
Delphi-Quelltext
1: 2:
| LinesAnzahl:= TMemo1.Lines.Count; Tmemo1.Lines.Instert(LinesAnzahl; aText); |
Oder wie sonst?
Arno Nym - Mo 05.06.06 20:21
Hi!
wenn du ganz hinten was anfügen willst reicht es wenn du
Memo1.lines.add(aText);
benutzt
MFG, Arno Nym
SunnyDream - Mo 05.06.06 20:56
Das ist mir bewusst, aber dann wird das Ganze in einer neuen Line/Zeile ausgegeben, ich möchte es aber innerhalb der letzten Zeile ausgeben :)
Das mit dem Insert habe ich hinbekommen, aber er eröffnet immerwieder eine neue Zeile... Ich möchte aber INNERHALB der letzten Zeile, in der etwas geschrieben ist, bleiben...
Also angenommen das ist mein Memo:
Zitat: |
Hallo.
Test.
Test2.
Test3.
|
Dann soll die Variable in der Zeile ausgegeben werden in der Test3 steht. Test3 soll aber erhalten bleiben... es sollte also so aussehen:
Zitat: |
Hallo.
Test.
Test2.
Test3. Variable.
|
Arno Nym - Mo 05.06.06 21:09
Hi!
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var tempstr: String; begin tempstr := Memo1.Lines[Memo1.lines.count-1]; Insert('eingefügter Text',tempstr, Memo1.CaretPos.X+1); Memo1.Lines[Memo1.lines.count-1]:= tempstr; end; |
so, das fügt nun den String 'eingefügter Text' hinter der aktuellen Cursorposition in der letzen Zeile ein.
MFG, Arno Nym
Moderiert von
raziel: Delphi-Tags hinzugefügt
SunnyDream - Mo 05.06.06 22:26
Hey!
Danke, es funktioniert genau so wie ich es mir vorgestellt habe! Danke!
tolosonic - Mo 04.06.07 14:27
mmh, wenn ich jetzt in einem memo oder richedit feststellen möchte, in welcher zeile sich der cursor befindet, wie mache ich das? caretpos findet meine hilfe nicht.
danke :)
tolosonic - Mo 04.06.07 15:39
ok, kann es sein das caretpos in delphi 3 noch nicht verfügbar ist? wenn das so ist, hat jemand einen workaround?
vielen dank!
Eddie - Do 16.08.07 22:19
Also ich hab Delphi 2005 und bei mir gibts Memo1.CaretPos auch nicht...Gibts ne andere möglichkeit?
Agawain - Do 16.08.07 22:27
Hi
irgendwas verkehrt?
Die Eigenschaft CaretPos gibt die Position des Cursors im Client-Bereich des Memofeldes an.
property CaretPos: TPoint;
Beschreibung
Mit CaretPos bestimmen Sie die Koordinaten des Cursors. CaretPos gibt die X- und Y-Position (in Zeichen und Zeilen) relativ zum Client-Bereich des Memofeldes an.
Um die Position des Cursors in Textzeichen anstelle der X/Y-Position) festzulegen, verwenden Sie die Eigenschaft SelStart.
Dies stammt aus der Hilfe-Datei von D5 zu TMemo
Gruß
Aga
IceBube - Do 16.08.07 22:32
Funkt das nicht auch mit...
Delphi-Quelltext
1:
| Memo1.Text := Memo1.Text + '{Den Text der hinzugefügt werden soll!}' |
lg
Eddie - Do 16.08.07 23:13
Ich nehme alles zurück und Behaupte das Gegenteil! :)
Er zeigt CaretPos nur nicht in dieser Autoverfollständigung an...hab jetzt einfach mal so eingegeben und es Funzt...
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!