Autor |
Beitrag |
SunnyDream
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: Mo 05.06.06 17:31
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
      
Beiträge: 131
|
Verfasst: 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 
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: 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
      
Beiträge: 131
|
Verfasst: 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 
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: 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
      
Beiträge: 131
|
Verfasst: 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 
      
Beiträge: 36
WinXP
Delphi 7 Personal
|
Verfasst: Mo 05.06.06 22:26
Hey!
Danke, es funktioniert genau so wie ich es mir vorgestellt habe! Danke!
|
|
tolosonic
      
Beiträge: 36
|
Verfasst: 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
      
Beiträge: 36
|
Verfasst: 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
      
Beiträge: 58
WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
|
Verfasst: Do 16.08.07 22:19
Also ich hab Delphi 2005 und bei mir gibts Memo1.CaretPos auch nicht...Gibts ne andere möglichkeit?
_________________ Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
|
|
Agawain
      
Beiträge: 460
win xp
D5, MySQL, devxpress
|
Verfasst: 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
      
Beiträge: 231
|
Verfasst: 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
      
Beiträge: 58
WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
|
Verfasst: 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...
_________________ Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
|
|