Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Удаление последнего символа
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
misterio
Задача :

Есть поле которое допускает только ввод символа Х. Если пользователь вводит другой символ, то он должен быть удален.

Вот я написал так, но почему-то не работает? Что- то не так? Может есть альтернативные способы отключения ввода всех клавиш кроме определенных?

Станартная процедура KeyPress

Цитата
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
var
GetStr : string;
begin

if (Key <> 'x') then
begin
MessageDlg('Символ недопустим!!', mtError, [mbOK],0);
GetStr := Edit1.Text;
Delete (GetStr, Length(GetStr)-1 ,1 );
Edit1.Text := GetStr;
end;
end;


Вместо этого оно заменяет первый символ на введенный из клавы.
sax_ol
Советую обратить внимание на то, что Key передается как var-parameter (по ссылке).
misterio
Цитата
что Key передается как var-parameter (по ссылке)


Я не программист и мне это ни о чем не говорит.
European
Цитата(misterio @ 3:03:2008 - 18:17) *
Я не программист и мне это ни о чем не говорит.

0 ему присвой, если я правильно понял sax_ol
misterio
Цитата
0 ему присвой


Кому? Вы можете писать словами, а не мысленно посылать сообщения? biggrin.gif

А и еще оно фокус на начало строки кидает....как это можно в конец перекинуть?
European
Цитата(misterio @ 3:03:2008 - 18:31) *
Кому? Вы можете писать словами, а не мысленно посылать сообщения?

А вы не способны 2 сообщения связать?
Key := 0;
sax_ol
Цитата(misterio @ 3:03:2008 - 18:17) *
Я не программист и мне это ни о чем не говорит.

Т.е. код в топике писали не вы? тогда передайте эти слова тому кто писал.
Цитата(European @ 3:03:2008 - 18:39) *
Key := 0;

Да, только с маленькой поправкой
if (Key <> 'x') then Key := #0;
Это всетаки не си smile.gif
misterio
Цитата
Да, только с маленькой поправкой
Код
if (Key <> 'x') then Key := #0;


О вот это дело!

Цитата
А вы не способны 2 сообщения связать?


Не надо умничать.
Цитата
0 ему присвой
- понятие неоднозначное.
European
Цитата(misterio @ 3:03:2008 - 20:20) *
Не надо умничать.

Не надо хамить
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.