void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
ShowMessage(IntToStr(Key));//выводит код клавиши
}
Ввод только цифр в Edit
По событию OnChange проверяю какие символы вводяться в строку. Подскажите, как лучше сделать, как получитькод клавишы, нажимаемойв Edit???
Цитата:
Originally posted by Tigren0k
По событию OnChange проверяю какие символы вводяться в строку. Подскажите, как лучше сделать, как получитькод клавишы, нажимаемойв Edit???
По событию OnChange проверяю какие символы вводяться в строку. Подскажите, как лучше сделать, как получитькод клавишы, нажимаемойв Edit???
Код:
Ну а если нужно пропустить только цифери, то
Код:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if(Key<'0' || Key>'9')Abort();
}
{
if(Key<'0' || Key>'9')Abort();
}
В него по идее нужно добавить клавиши backspase, управляющие и т.д. Определения этих клавишь смотри в [color=green]winuser.h[/color]
Цитата:
Originally posted by pacific_7
В него по идее нужно добавить клавиши backspase, управляющие и т.д. Определения этих клавишь смотри в [color=green]winuser.h[/color]
В него по идее нужно добавить клавиши backspase, управляющие и т.д. Определения этих клавишь смотри в [color=green]winuser.h[/color]
Можно написать так:
void __fastcall TForm2::LabeledEdit1KeyPress(TObject *Sender, char &Key)
{
if((Key>'0' && Key<'9') || Key==8 || Key==46 )return;
else Abort();
}
Включены клаваши DEL и BackSpace; так можно добавить все нужные клавиши.
Спасибо!
Цитата:
Originally posted by Tigren0k
Можно написать так:
void __fastcall TForm2::LabeledEdit1KeyPress(TObject *Sender, char &Key)
{
if((Key>'0' && Key<'9') || Key==8 || Key==46 )return;
else Abort();
}
Можно написать так:
void __fastcall TForm2::LabeledEdit1KeyPress(TObject *Sender, char &Key)
{
if((Key>'0' && Key<'9') || Key==8 || Key==46 )return;
else Abort();
}
Верно! Только для понятности кода можно использовать не 8 и 46, а определенные в winuser.h значения: VK_BACK и VK_DELETE
Цитата:
Originally posted by pacific_7
Только для понятности кода можно использовать не 8 и 46, а определенные в winuser.h значения: VK_BACK и VK_DELETE
Только для понятности кода можно использовать не 8 и 46, а определенные в winuser.h значения: VK_BACK и VK_DELETE
К слову сказать, правильнее всего не вызывать Abort, а просто присваивать ноль параметру Key.
Цитата:
Originally posted by Freeman
К слову сказать, правильнее всего не вызывать Abort, а просто присваивать ноль параметру Key.
К слову сказать, правильнее всего не вызывать Abort, а просто присваивать ноль параметру Key.
Почему? В итоге в чем разница?
Цитата:
Originally posted by pacific_7
В итоге в чем разница?
В итоге в чем разница?
Культурный стиль программирования. Так предусмотрено Борландом.