Autor Beitrag
SunnyDream
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: Mo 05.06.06 20:16 
Also z.B:

ausblenden Delphi-Quelltext
1:
2:
LinesAnzahl:= TMemo1.Lines.Count;
Tmemo1.Lines.Instert(LinesAnzahl; aText);


Oder wie sonst?
Arno Nym
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Mo 05.06.06 21:09 
Hi!
ausblenden 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 user profile iconraziel: Delphi-Tags hinzugefügt
SunnyDream Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

WinXP
Delphi 7 Personal
BeitragVerfasst: Mo 05.06.06 22:26 
Hey!

Danke, es funktioniert genau so wie ich es mir vorgestellt habe! Danke!
tolosonic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 460

win xp
D5, MySQL, devxpress
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 231



BeitragVerfasst: Do 16.08.07 22:32 
Funkt das nicht auch mit...

ausblenden Delphi-Quelltext
1:
Memo1.Text := Memo1.Text + '{Den Text der hinzugefügt werden soll!}'					


lg
Eddie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: 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.