Главная страница
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.48 MB
Время: 0.02 c
14-34227
Vlad2
2002-10-23 07:04
2002.11.11
ищу двоичный редактор


3-33911
maxim2
2002-10-23 08:05
2002.11.11
Перенос базы из Delphi6 в Kylix2


1-33991
KPY
2002-10-30 15:57
2002.11.11
как узнать уже создан компонент на форме или еще нет?


1-34043
Darkwin
2002-10-29 19:38
2002.11.11
Как немножко подкорректировать компонент? :))


1-34073
p@s
2002-10-30 16:52
2002.11.11
Отображение всех форм на таскбаре