Autor Beitrag
fmeyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

Win XP, SuSE 9.0
D7 Entp
BeitragVerfasst: Di 13.04.04 20:16 
Hallo,

ich möchte folgenden Text

ausblenden Quelltext
1:
2:
3:
4:
5:
for ($i=1;$i<10;$i++)
 {
  Anweisung1;
  Anweisung2;
 }


an der aktuellen Cursorposition einfügen. Bisher habe ich es so gemacht:

ausblenden Delphi-Quelltext
1:
2:
text := 'for ($i=1;$<10;$i++) { Anweisung1; Anweisung2; }';
SynEdit1.Lines.Add(text);


Aber dann wird ja alles in einer Zeile ausgegeben und auch nicht an der aktuellen Cursorposition.

Hat jemand nen Tipp, wie ich mein Problem lösen könnte?

Grüße,
Fabian

_________________
Wenn man nicht fühlt dass man lebt, wird das Leben sinnlos!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 15.04.04 12:41 
Hi!

Also, ich kann mich jetzt nicht an SynEdit so genau erinnern, aber hat das nicht auch so eine Eigenschaft wie SelStart oder ähnliches?

Dann könntest Du den Text an dieser Stelle einfügen. (über die Text-Eigenschaft)

Und was den Zeilenumbruch angeht: Ich weiß zwar nicht, was SynEdit damit macht, aber eigentlich müsste das, wie in einem normalen Memo-Feld durch das Einfügen von einem Zeilenumbruch-Character zu machen sein:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
//Chr(13)
//ist der Zeilenumbruch

Memo1.Text:=Copy(Memo1.Text,1, Memo1.SelStart-1)
    +Chr(13)+#13+Copy(Memo1.Text,Memo1.SelStart,
    Length(Memo1.Text)-Memo1.SelStart);


Das sollte an der aktuellen Cursor-Position zwei Leerzeichen einfügen.
Um einen String einzufügen gibt es wohl auch Insert, aber den Befehl habe ich gerade nicht im Kopf.

Außerdem gibt es auch noch Windows-Botschaften, mit deren Hilfe man die aktuelle Cursor-Position in der aktuellen Zeile und die aktuelle Zeile feststellen kann, aber die muss ich erst noch an SynEdit ausprobieren. (zudem weiß ich jetzt gerade nicht, wie sie heißen...)

MfG,
Sebastian
Benedikt
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.04.04 17:04 
Hi,

das einfachste um einen Text an der Cursor-Position einzufügen ist, das du SynEdit.SelText einen Wert zuweist.
Damit wird der aktuell markierte Text mit dem Text überschrieben bzw. der Text an der Cursor-Position eingefügt.

Beispiel:
ausblenden Delphi-Quelltext
1:
SynEdit1.SelText:='Blablabla'+#13#10+'Blubblubblub';					



@jaenicke:
SynEdit.CaretXY, (bzw. SynEdit.CaretX und SynEdit.CaretY) geben dir die aktuelle Cursor-Position wieder, Windows-Messages brauchst bei der SynEdit-Kompo net :D
Als korrekten Zeilenumbruch wäre übrigens zu #13#10 zu raten.
fmeyer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

Win XP, SuSE 9.0
D7 Entp
BeitragVerfasst: Fr 16.04.04 21:44 
Hallo,

habe es auch so gemacht wie Benedikt und es funzt super. So wollte ich es haben. Danke für eure Hilfe.

Grüße,
Fabian

_________________
Wenn man nicht fühlt dass man lebt, wird das Leben sinnlos!