![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Алекс |
|
|||
|
Unregistered |
Какое условие поставит для Edit в Delphi чтобы можно было вводить только цифры ?
|
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
if ord(edit1.text[length(edit1.text)]<48) or ord(edit1.text[length(edit1.text)]>57) then edit1.text:=copy(edit1.text,1,length(edit1.text)-1); |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
OnKeyPress:
if not (Key in ['0'..'9']) then Key:=#0; Но этого недостаточно, надо обрабатывать ещё и onChange на случай если попытаются внести что-то при помощи Clipboard. А вообще это как раз тот случай когда надо использовать или TSpinEdit или написать свой компонент. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
ES_NUMBER
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Что-то я его в help'e не нашёл, это сообщение? В модуле Windows константа определена в разделе "Control Manager Structures and Definitions" - и как ей пользоваться? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| МММ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 18.6.2002 Репутация: нет Всего: 1 |
А может проще MaskEdit?
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Проще, но не всегда подходит -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Song |
|
||||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Это не сообщение, это стиль. Он появился от IE 4.0. Чтобы его активировать, надо перекрывать CreateParams -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
||||
|
|||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
А может не изобретать велосипед, а использовать RxLib
|
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
S := GetWindowLong(Edit1.Handle,GWL_STYLE);
S := S OR ES_NUMBER; SetWindowLong(Edit1.Handle,GWL_STYLE,S); HO ! ES_NUMBER не поможет при вставке данных из Clipboard. Тут метод предложенный Vit (OnChange) имеет большую силу. что-то вроде procedure TForm1.Edit1Change(Sender: TObject); var f : Extended; begin if (Edit1.Text = '') or (Edit1.Text = '-') then exit; try f := StrTofloat(Edit1.Text); except on e:exception do begin edit1.text := s; edit1.SelStart := length(s); end; end; s := edit1.text; end; -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Насколько я помню ES_NUMBER нельзя включить через SetWindowLong(). Именно поэтому я не написал этот вариант.
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
запросто можно. я не раз подобное делал, только с другими стилями, заодно попробовал сделать с ES_NUMBER - ok -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| алекс |
|
|||
|
Unregistered |
Народ я в программировании полный ноль !!! Сделал на Delphi обычный калькулятор
Типа procedure TForm1.Button1Click(Sender: TObject); begin a:=StrtoInt(Edit1.Text)+StrtoInt(Edit2.Text); Edit3.Text:=InttoStr(a); end; Если можете, объясите какое условие поставить для Edit1 и Edit2, чтобы можно было вводить только цифры ? На моём примере покажите PLZ а то я в ваших месагах ничего не понимаю |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Для твоих Edit1 и Edit2 в обработчике события onKeyPress поставь строку:
На твоём примере никак не покажешь, так как при исполнении твоего кода значения в Edit поля уже введены, можно только проверить числа там или нет -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
алекс - ты мой код видел?
Поставь для события OnChange обоих Edit этот код (скопируй и вставь). -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |