Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

заблокировать(запретить) ввод в TEdit [D7, XP]


Страницы:   1 2 3

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('Не введено значение');


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо