Pozycja kursora

0

Jak ustawić kursor(klawiatury wewnątrz Memo) na żądanej pozycji, tak aby wewnątrz tekstu (w określonym miejscu) wstawić jakiś znak ??

0
Memo1.SelStart := x; // (Pozycja jako Integer);
0

Nie dokońca o to mi chodziło.
polecenie memo.selStart posiada jedną wartość.
a pozycja kursora posiada 2 wartości (numer linii oraz numer pozycji w tej linii).
A poza tym jeśli najpierw użyje polecenia Sel.start, a następnie memo.lines.insert() to wówczas to co było zaznaczone zostaje skasowane i w to miejsce wstawiony zostaje noey znak

A poza tym jeśli najpierw użyje polecenia Sel.start, a następnie memo.lines.insert() to wówczas to co było zaznaczone zostaje skasowane i w to miejsce wstawiony zostanie nowy znak. Mi tym czasem chodzi o to aby ten znak wstawić przed (miejsce w którym zaczyna się) zaznaczenie.

0

Musisz znać, w której linijce w Memo, chcesz dokonać zmian. Załóżmy że w linii 20-tej.

procedure TForm1.ListBox1Click(Sender: TObject);
begin
 Memo1.SelStart := Memo1.Perform(EM_LINEINDEX, 19, 0);
end;

Teraz pobierasz tekst z tej linijki

Text := Memo1.Lines.Strings[20];

i sprawdzasz funkcją Pos i Length w którym miejscu znajduje się znak który chcesz zmienić z poziomu Memo.

Następnie znając odległość, zaznaczasz tekst w Memo.

Memo1.SelLength := Pozycja;
0

opi napisał:
"Musisz znać, w której linijce w Memo, chcesz dokonać zmian"
Tylko że ja nigdy nie będe znał nr lini w której będzie wstawiany znak. Moge znać co najwyżej index (pozycji) kursora, który moge odczytać memo1.selStart

A tak poza tym - czy tyle tych kombinacji jest potrzebnych do tego aby wstawić znak (przed miejscem gdzie rozpoczyna się zaznaczenie) oraz zaraz za miejscem gdzie ono się kończy ??

np. mamy taki ciąg:
123456789

a po zaznaczeniu (go od liczby 4 do liczby siedem włącznie)i naciśnięciu przycisku ma on wyglądać tak:

123<b>4567</b>89

oczywiście zaznaczenie może obejmować kilka linii tekstu

0

eh... Trzeba mówić tak od razu...

memo1.SelText:='<b>'+memo1.SelText+'</b>';

1 użytkowników online, w tym zalogowanych: 0, gości: 1