Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2008, 17:56   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Edit

Подскажите с кодом: нужно edit ограничить
в наборе цыфр ,что бы набиралось не меньше
00 и не больше 24,а если больше или меньше
то выскакивал диалог,Вот написал но не работает:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
Var
rt:String;
begin
rt:=Form1.Edit1.Text;
if ((Key<'0')or(key>'9'))and(key<>#8) then
begin
Key:=#0;

end;

end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
if ((rt<'00')or(rt>'24')) then begin
showmessage('rrrrrrrrrrrrrrrrr');
end else
end;
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 31.05.2008, 18:08   #2
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Ты сравниваешь строки а надо числа, вот и не работает.

Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
Var
rt:String;
begin
rt:=Form1.Edit1.Text;
if ((Key<'0')or(key>'9'))and(key<>#8) then
begin
Key:=#0;

end;

end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
if ((StrToInt(rt)<StrToInt('00'))or(StrToInt(rt)>StrToInt('24'))) then begin
showmessage('rrrrrrrrrrrrrrrrr');
end else
end;
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 31.05.2008, 18:38   #3
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
if ((Key<'0')or(key>'9'))and(key<>#8) then Key:=#0;
Нужно учитывать, что пользователи программ способны на любую подлость, в т.ч. правой кнопкой кликнуть в edit, вставить текст из буффера, и все проверки к чертям =)

Поэтому лучше вместо того кода написать в событии TForm1.OnCreate
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) + ES_NUMBER);
пыщь
JTG вне форума Ответить с цитированием
Старый 31.05.2008, 19:10   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

или просто сделать проверку в событии онЧеиндж едита.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 31.05.2008, 23:05   #5
Xeaction
 
Регистрация: 31.05.2008
Сообщений: 3
По умолчанию

На вкладке Win31, есть специальный компонент непомню название. Вот внём всё и делай для цифр, а потом переводи если нужно из Интригера в Текст ( IntToStr )
Xeaction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Edit Editor Общие вопросы Delphi 10 25.06.2008 19:52
edit moysey Помощь студентам 2 26.11.2007 18:40
Edit! Abbatik Помощь студентам 7 25.11.2007 15:39
Edit niva622 Помощь студентам 10 06.09.2007 17:36
Edit PAVEL315 Компоненты Delphi 10 14.03.2007 18:58