Главная страница
    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.46 MB
Время: 0.037 c
14-1135977049
sergey1
2005-12-31 00:10
2006.01.22
ура, и все таки я ее сделал


14-1135874295
ПЛОВ
2005-12-29 19:38
2006.01.22
Кто нибудь юзает xD Picture Card


2-1135693185
stocker
2005-12-27 17:19
2006.01.22
Динамический PageControl и TabSheet


2-1135764171
Slaga
2005-12-28 13:02
2006.01.22
Есть ли ограничение на длину названия DBF ного файла


2-1135800242
KvORubin
2005-12-28 23:04
2006.01.22
Пацаны, Как просто удалить файл???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский