Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Cursor-Position im Memo ändern


AlexBegin - Do 21.05.09 21:37
Titel: Cursor-Position im Memo ändern
Ich füge einen bestimmten Text mit dem folgenden Code in ein Memo ein. Nun möchte ich das der Cursor nicht in der eingefügten Zeilen stehen bleibt, sondern eine Zeile weiter gerückt wird.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm6.Button3Click(Sender: TObject);
var Zeile: Integer;
begin
  Form7.ShowModal;
  if Form7.Edit1.Text > '' then
    begin
      Zeichen := Memo1.text;
      Insert('Warte '+Form7.Edit1.Text+''+#13#10, Zeichen, Memo1.SelStart+1);
      Memo1.text := Zeichen;
    end;
end;


Kann mir jemand helfen?

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt


jaenicke - Do 21.05.09 21:41

Setze einfach SelStart auf die Position, an der der Cursor stehen soll. ;-)


AlexBegin - Do 21.05.09 22:00

Tut mir leid, aber meine Versuche scheitern. Könntest du mir eventuell den Code zeigen, wie ich den Cursor eine Zeile nach unten gekomme?


MDX - Do 21.05.09 22:13

Schau dir mal das Beispiel an: http://www.delphi-forum.de/viewtopic.php?t=31840&highlight=memo+selstart


jaenicke - Do 21.05.09 22:16

Was machst du da eigentlich mit Insert und dem ganzen Aufwand?
Meinst du das?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm6.Button3Click(Sender: TObject);
var
  InsertText: String;
begin
  Form7.ShowModal;
  if Form7.Edit1.Text > '' then
  begin
    InsertText := 'Warte ' + Form7.Edit1.Text + #13#10;
    Memo1.SelText := InsertText;
    Memo1.SelStart := Memo1.SelStart + Length(InsertText);
  end;
end;
Und wenn du die Komponenten noch richtig bezeichnen würdest, dann würde der Code auch nicht so unordentlich und unübersichtlich aussehen.


AlexBegin - Do 21.05.09 22:25

Super funktioniert einwandfrei.

Delphi-Quelltext
1:
2:
3:
Zeichen := Memo1.text;
Insert('Warte '+Form7.Edit1.Text+''+#13#10, Zeichen, Memo1.SelStart+1);
Memo1.text := Zeichen;

Den obigen code habe ich aus einem anderen Thread. Die Variabel Zeichen (bei InsertText) habe ich nicht in der Procedure deklariert, da ich diese Variabel mehrfach in verschiedene Procedure brauche.


Nochamsl Danke für die Hilfe.

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt