Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.038 c
14-1135983924
Profi
2005-12-31 02:05
2006.01.22
Всех С Новым 2006 Годом!


2-1135859507
ezorcist
2005-12-29 15:31
2006.01.22
Как сохранить в файл канву?


3-1132388654
888
2005-11-19 11:24
2006.01.22
Обнулить счетчик


2-1136464825
ArtemESC
2006-01-05 15:40
2006.01.22
Процесс...


1-1134651632
DN
2005-12-15 16:00
2006.01.22
Как загрузить картинку в Image из некоего URL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский