![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Каретка возвращается! [D6, WinXP]
liho26 © (2002-10-31 10:48:00)Здравствуйте. Нужна ваша помощь. Вкратце опишу вопрос, который не могу решить. В 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 удержать каретку на этой же строке?
liho26 (2002-10-31 12:21:00) [1]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
Smithson (2002-10-31 12:10:00) [2]Ну блин!
Key := 0; // !!!!
liho26 (2002-10-31 12:09:00) [3]Несовместимые типы Word и Char...
Key:=#0 - это тип char
VK_ENTER - это тип word
Можно было бы написать код, в обработчике oKeyPress, но эта процедура не отлавливает нажатый шифт
Smithson (2002-10-31 11:58:00) [4]
{ Некоторый код здесь }
Key := #0;
end;
liho26 (2002-10-31 11:57:00) [5]Не, не подходит....(( Тогда сам ENTER перестает работать. А надо, чтобы без нажатого шифта ENTER работал, и с клавишей шифт - оставался на строке
Vint (2002-10-31 11:43:00) [6]procedure TForm1.EditorKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
Key := #0;
end;