Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Как недопустить текстовые символы в edit?   Найти похожие ветки 

 
49 Cent   (2006-02-25 04:32) [0]

Есть 4 tedit и необходимо, чтобы в них заносились только цифры и никаких букв и символов. Каким образом выполнить эту задачу? Обязательно писать код или может в свойствах компонента можно установить подобную настройку?


 
Defunct ©   (2006-02-25 04:52) [1]

ответ на ваш вопрос:
в OnKeyPress если прочитано что-то, что вам не нужно просто заменить символом #0.

наводящий пример (здесь при вводе не пропускаются буквы, но пропускаются некоторые символы):
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if Byte(Key) > $39 then
    Key := #0;
end;



но можно пойти более правильным путем. Пусть пользователь пишет то, что посчитает нужным, а когда он все введет, по нажатию например кнопки "Ок" - проверить правильность всего введенного.


 
Fay ©   (2006-02-25 06:31) [2]

ES_NUMBER


 
49 Cent   (2006-02-25 18:33) [3]

2 Fay и Defunct

Спасибо за помощь! По вашим подсказкам нашел 2 варианта решения проблемы:

1. SetWindowLong(Edit1.Handle, GWL_STYLE,GetWindowLong(Edit1.Handle, GWL_STYLE) or  ES_NUMBER );
2. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in ["0".."9",#8]) then Key:=#0;
end;


 
Pit ©   (2006-02-25 18:38) [4]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
"a" .. "z","A" .. "Z": ;
else Key := Chr(0);
end;
end;


 
Pit ©   (2006-02-25 18:39) [5]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
"0" .. "9",#8: ; // цифры и клавиша <Backspace>
else Key := Chr(0);
end;
end;


 
Джо ©   (2006-02-25 19:43) [6]

Все 3 варианта не помешают вставке чего угодно из Буфера обмена. Поддерживаю [1] Defunct (последнее предложение).


 
Pit ©   (2006-02-25 19:51) [7]


> Джо ©   (25.02.06 19:43) [6]
> Поддерживаю [1] Defunct


defunct [defunct]
прил. усопший, покойный, умерший, несуществующий, исчезнувший, вымерший
Зачем же так плохо обо мне.


 
Джо ©   (2006-02-25 20:26) [8]

> [7] Pit ©   (25.02.06 19:51)
> defunct [defunct]
> прил. усопший, покойный, умерший, несуществующий, исчезнувший,
> вымерший
> Зачем же так плохо обо мне.

Нет, это ни в коем случае не о тебе. Или это шутка? Или просто пароксизм?


 
Pit ©   (2006-02-25 20:33) [9]

Нет не шутка, просто первая моя так сказать специализация is  English, извини если обидел, был не прав, чего только не подумаешь, у каждого свои заморочки.


 
Pit ©   (2006-02-25 20:39) [10]

Извини Джо первая мысль перевала, вторая подумала.


 
Defunct ©   (2006-02-25 20:42) [11]

Джо ©   (25.02.06 20:26) [8]

Это ему мой ник-нейм не нравится :)


 
Pit ©   (2006-02-25 21:03) [12]

Давайте больше не будем о грустом, и не будем засорять форум ненужными фразами. Я извинился и по моему проблемма исчерпона. С уважением Pit.


 
Defunct ©   (2006-02-25 21:19) [13]

Pit ©   (25.02.06 21:03) [12]

нет проблем, можете звать меня funct или def если вам так будет удобней ;>


 
Pit ©   (2006-02-25 21:29) [14]

Уважаемые програмисты новый ник-нейм Defunct = funct or def.


 
Галинка ©   (2006-02-25 21:42) [15]

Поддерживаю идею разрешить вводить все, а потом в защищенном блоке отлавливать исключение. Муторно, но надежно. Да и опечатки могут быть...


 
Pit ©   (2006-02-25 21:46) [16]


> Галинка ©   (25.02.06 21:42) [15]
> Поддерживаю идею разрешить вводить все, а потом в защищенном
> блоке отлавливать исключение. Муторно, но надежно. Да и
> опечатки могут быть...


ДА я тоже за еееето.  Даздравствует руськуя могучая языка.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.012 c
15-1140039582
Petr V. Abramov
2006-02-16 00:39
2006.03.12
UPS APC от 1КВт 19U стойкомонтируемые


15-1140241586
Crack
2006-02-18 08:46
2006.03.12
Добрый вечер...


15-1139919604
Digitman
2006-02-14 15:20
2006.03.12
ASIO DDK


2-1140539927
Незнаище
2006-02-21 19:38
2006.03.12
Локальный компьютер


2-1140975612
Volkodav
2006-02-26 20:40
2006.03.12
Полоса перемотки для MediaPlayer1





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский