Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизПроблема! курсор прыгает в начало. Найти похожие ветки
← →
mobwar (2006-01-05 23:18) [0]
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
Memo1.Text:= StringReplace(Memo1.Text, "ja", "h",
[rfReplaceAll, rfIgnoreCase]);
Принцип простой, автоматически при написании текста, сочетание
ja меняется на h. Всё работает :) но как всегда есть но.
После изменения, курсор прыгает в начало строки и если писать дальше то буква остаётся с правой стороны курсора. Как предотвратить перескок курсора. Надо чтобы писалось как будто ничего и не происходило. Просто менялись буквы. Спасибо!
← →
GanibalLector © (2006-01-05 23:42) [1]Memo1.SelStart ???
← →
Fay © (2006-01-05 23:50) [2]2 mobwar (05.01.06 23:18)
Грубовато, конечно, зато бесплатно 8)procedure TForm1.Memo1KeyPress(Sender : TObject; var Key : Char);
begin
if (Sender is TMemo) then
with TMemo(Sender) do
if (SelLength = 0) and (Key in ["a", "A"]) and (Text[SelStart] in ["j", "J"]) then
begin
Perform(WM_CHAR, VK_BACK, 0);
Key := "h";
end;
end;
← →
Fay © (2006-01-06 00:01) [3]Проверку на SelStart=0 забыл. Но это же не мои проблемы, верно? 8)
← →
TStas © (2006-01-06 01:35) [4]>procedure TForm1.Memo1KeyPress
, а надо бы в TForm1.Memo1KeyUp. Событие OnKeyPress происходит ДО того, как символ нарисовался в меме, а OnKeyUp - после
← →
Fay © (2006-01-06 01:53) [5]2 TStas © (06.01.06 1:35) [4]
Серьёзно? Круто! А как тогда объяснить то, что Key передаётся как var?
← →
mobwar (2006-01-06 10:24) [6]Ух спасибо, хоть есть информация к размышлению :)
По началу совсем скис.. теперь будем думать.
← →
mobwar (2006-01-06 10:47) [7]Текс... обманул всётаки программу, профи скажут что грубо но работает. Вот что получилось:
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Memo1.Text:= StringReplace(Memo1.Text, "ja", "h",
[rfReplaceAll, rfIgnoreCase]);
Memo1.SelStart:=+2;
Memo1.SelStart:=-2;
end;
Спасибо за поддержку :)
Может кому пригодится.
← →
jack128 © (2006-01-06 11:32) [8]Fay © (06.01.06 1:53) [5]
Серьёзно? Круто! А как тогда объяснить то, что Key передаётся как var?
И что? Ты попробуй его изменить, от этого что, содержимое мемо изменится? ;)
← →
jack128 © (2006-01-06 11:33) [9]jack128 © (06.01.06 11:32) [8]
Ты попробуй его изменить,
Имеется в виду тот Key, который в OnKeyUP передается..
← →
Fay © (2006-01-06 11:39) [10]2 jack128 © (06.01.06 11:33) [9]
[2] не читал?
← →
Fay © (2006-01-06 11:44) [11]2 jack128 © (06.01.06 11:33) [9]
2 TStas © (06.01.06 1:35) [4]
Так, меня уже колбасит. Забудем про [5] и [10] - я как-то по диагонали посты читаю, видимо.
З.Ы.
Я, правда, не понял, каким боком всплыл OnKeyUp?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c