Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: CL | DM;

Вниз

Каретка возвращается!   Найти похожие ветки 

 
liho26   (2002-10-31 10:48) [0]

Здравствуйте. Нужна ваша помощь. Вкратце опишу вопрос, который не могу решить. В RichEdit я обрабатываю одновременное нажатие клавиш shift and VK_RETURN программный код приведен ниже:

procedure TForm1.EditorKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssShift in shift) and (key = VK_RETURN) then
begin
.....
{некоторый код здесь}
end;

Вопрос заключается вот в чем. Как после нажатия VK_RETURN удержать каретку на этой же строке?


 
Vint   (2002-10-31 11:43) [1]

procedure TForm1.EditorKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
Key := #0;
end;


 
liho26   (2002-10-31 11:57) [2]

Не, не подходит....(( Тогда сам ENTER перестает работать. А надо, чтобы без нажатого шифта ENTER работал, и с клавишей шифт - оставался на строке


 
Smithson   (2002-10-31 11:58) [3]


{ Некоторый код здесь }
Key := #0;
end;


 
liho26   (2002-10-31 12:09) [4]

Несовместимые типы Word и Char...
Key:=#0 - это тип char
VK_ENTER - это тип word

Можно было бы написать код, в обработчике oKeyPress, но эта процедура не отлавливает нажатый шифт


 
Smithson   (2002-10-31 12:10) [5]

Ну блин!
Key := 0; // !!!!



 
liho26   (2002-10-31 12:21) [6]

Smithson! Твой код не работает!!!
Впринципе я уже нашел выход. Смотрите ниже приведенный код, мож кому и пригодится.
1. Объявляем глобальную переменную класса:

private
Pressed: Boolean;


Далее в обработчике onKeyDown пишем код

procedure TForm1.EditorKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
if (ssShift in shift) and (key = VK_RETURN) then
begin
Editor.SelAttributes.Color:=clpurple;
Editor.SelText:="Привет мир!";
Pressed:=true;
end;


Теперь в обработчике onKeyPress отлавливаем Pressed

procedure TForm1.EditorKeyPress(Sender: TObject; var Key: Char);
begin
if Pressed then
begin
Key := #0;
Pressed:=false;
end;
end;


Собственно говоря, все.
Пользуйтесь на здоровье! ))
Liho



Страницы: 1 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.007 c
14-34243
vopros
2002-10-23 15:38
2002.11.11
Интересно я AP опередил по количеству постов?


4-34288
Bukerman
2002-09-27 20:16
2002.11.11
DestroyWindow


1-33981
Vint
2002-10-31 14:51
2002.11.11
Черно-белая печать


14-34197
vopros
2002-10-21 17:29
2002.11.11
С сканером, кто плотно работал?


1-34023
[NEW]Splinter
2002-11-02 14:26
2002.11.11
Не могу прочитать из EXE-шника...





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