![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
заблокировать(запретить) ввод в TEdit [D7, XP]
zol © (2007-01-02 20:12:00)Здравствуйте.Подскажите как можно заблокировать(запретить) ввод текста и символов в TEdit.Чтоб в него можно было вводить только цифры и точку(или запятую). короче говоря для ввода с подальшей работой математикu...
Tifon (2007-01-04 16:54:00) [1]To MsGuns
Ну насамом деле я и вправду программирую около полутора года, но все равно надеялся что я не настолько ламер:(. Ну ладно спасибо закритику, заслуженную.
MetalFan_pda (2007-01-04 16:53:00) [2]ай-ай-ай.как покетИЕ проглючило.потрите плз дубли!
MetalFan_pda (2007-01-04 16:40:00) [3][36]
пример кода,приведенный вами ранее просто ужасен. уровня начинающего программиста.
можно функции через 1000 строк вместо 10 реализовывать... но зачем? как потом другим в этой писанине разбираться?!
MetalFan_pda (2007-01-04 16:38:00) [4][36]
пример кода,приведенный вами ранее просто ужасен. уровня начинающего программиста.
можно функции через 1000 строк вместо 10 реализовывать... но зачем? как потом другим в этой писанине разбираться?!
MetalFan_pda (2007-01-04 16:33:00) [5][36]
пример кода,приведенный вами ранее просто ужасен. уровня начинающего программиста.
можно функции через 1000 строк вместо 10 реализовывать... но зачем? как потом другим в этой писанине разбираться?!
azl (2007-01-04 16:06:00) [6]MsGuns © И что же ужасного в [17]? Собственно говоря, в [17] тот же код, что и в [2], слегка доработанный по просьбе автора вопроса.
MetalFan_pda (2007-01-04 15:57:00) [7][36]
пример кода,приведенный вами ранее просто ужасен. уровня начинающего программиста.
можно функции через 1000 строк вместо 10 реализовывать... но зачем? как потом другим в этой писанине разбираться?!
MsGuns (2007-01-04 15:49:00) [8]Код пишется не столько для "машины", сколько для человека, кторый будет его разбирать. Ваш код крайне громоздок и неинформативен, пресыщен лишними операторами, переменными и т.д. Кроме того, он просто нерабочий
Tifon (2007-01-04 15:42:00) [9]To MsGuns © (04.01.07 15:34) [35]
Если это сообщение хоть как-то ко мне относилось, тогда я все-таки спрошу.
По-моему сейчас машины достигли того уровня что будь в коде даже 100 локальных переменных, а сама програ просто будет выдать 300 раз "Привет", это ее не загромоздит, очень сильно, т.е. ты хочешь сказать что мой код плохой потому что он длинный и в нем используются дополнительные переменные и даже массивы?
MsGuns (2007-01-04 15:34:00) [10][10] делает все, что и [17], кроме ограничения по кол-ву десятичных знаков дроби. Если это так важно, то в [10] надо добавить проверку ввода "лишнего" знака
Если цифра и есть разделитель и позиция курсора больше позиции разделителя, то key := #0
Никакие локальные переменные, загромождающие код, в данном случае просто не нужны.
И все ;)
Tifon (2007-01-04 15:29:00) [11]> Если б их как нибудь соединить в одну процедуру, а потом пораздавать всем Edit.
Ты просто пиши вместе имени Edit'а такую строку
(Sender as TEdit) и дальше работай с ней как с Edit'ом, а в событие OnChange или OnKeyPress(смотря какое будешь использовать) присвой чтоб все Edit'ы выполняли команду, например Edit1.OnChange, а в самой Edit1.OnChange пишешь свою процедуру. И все.
To MsGuns(03.01.07 19:45) [24]
> Я извиняюсь.. Кто Вас научил так страшно программировать ?
А что собственно плохого в моем программировании, я не хочу сказать что я хороший программист, но мне казалось что не настолько плохой чтоб вот так говорили о моем коде. Что там плохого?
zol (2007-01-04 13:27:00) [12]
> MsGuns © (04.01.07 00:31) [32]
Сижу сейчас пробую [17] и [10]. Если б их как нибудь соединить в одну процедуру, а потом пораздавать всем Edit.
MsGuns (2007-01-04 00:31:00) [13]>zol (04.01.07 00:06) [29]
>в сравнении с azl © (03.01.07 18:05) [17] - компактненько, но меньше преимуществ.
? Так компактненько, что игнорирует backspace, а также не позволяет вводить дроби и отрицательные числа. В [17] написан УЖОС !
Чем не нравится [10] с поправкой в [24] для особо ленивых ?
Хотя, конечно, надо учитывать замечания Палладина и вставку из буфера
Palladin (2007-01-04 00:10:00) [14]ну и забыл добавить что кроме #8 существует еще куча управляющих символов, подробности о которых можно узнать поискав в google таблицу символов ASCII
Palladin (2007-01-04 00:08:00) [15]
> [28] kingsoft ©
#8 означает клавишу backspace
редактирование пишется через а, потому что редокторов не бывает...
zol (2007-01-04 00:06:00) [16]
> kingsoft © (03.01.07 23:52) [28]
Спасибо, в сравнениис azl © (03.01.07 18:05) [17]- компактненько, но меньше преимуществ.
kingsoft (2007-01-03 23:52:00) [17]Вот более лёгкий и понятный код.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [ #8,'0'..'9']) then key :=#0;
end;
#8 - значит использование клавиш редоктирования
в одинарных кавачках ' ' введи символы которые ты хочешь чтобы вводились, но а в остальном всё просто.
MsGuns (2007-01-03 21:04:00) [18]>zol (03.01.07 20:50) [26]
>Может у каждого свой подход к программированию
Речь не о подходе, а о стиле мышления. Если человек МЫСЛИТ так, как в [19], ему надо быстро-быстро менять профессию. Например, вэб-дизайнить, или там продавать чего-нибудь.
Проще всего подглядеть "правильный" подход к программированию в самой делфе, в исходниках VCL.
zol (2007-01-03 20:50:00) [19]Спасибо большое(даже огромнейшее)! Дело в том что читаю одно - пробую применяю на практике - тут же кричат "Где тебя учили так писать...". Может у каждого свой подход к программированию?
azl (2007-01-03 20:07:00) [20]MsGuns
> Если спорящие хоть иногда почитывают книжки и хэлпы ;)
Это точно.
zol. Ну, это вообще проще пареной репы. Перед тем, как считывать данные с Edit'ов проверять
if (Edit1.Text <> '') or (Edit1.Text <> '-') then
//считать
else
ShowMessage('Не введено значение');