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

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

Tcaption и Char [D7, XP]


Страницы:   1 2

Alexandr Malygin ©   (2007-12-12 13:03:00) 

Подскажите плиз
Мне нужно проверить что в поле эдит находятся только цифры (целые и нет), я исключил ввод букв, пробелов, но осталась возможность впихнуть их в этот эдит с помощью ctrl+v или paste, вот код как я пытаюсь по уходу из эдита делать проверку

procedure TForm1.SrokEditExit(Sender: TObject);
begin
if not (SrokEdit.Text in ['0'..'9']) then
begin
ShowMessage('неверный формат!');
SrokEdit.Text:='';
Exit;
end;
end;

но ругается:
[Error] LightsUnit.pas(142): Incompatible types: 'TCaption' and 'Char'

вразумите пожалуйста, возможно ли их привести к общему формату??


morgoth   (2007-12-13 15:42:00) [1]

чет я не в тему чтоле )))


morgoth   (2007-12-13 15:35:00) [2]

если поле для ввода чисел, то используй событие OnKeyPress

 if not (Key in ['0'..'9', #8]) then
   Key := #0;

ну и перед работой с этим значением проверяй его, раз уж юзеры такие умные и копипастинг освоили


Anatoly Podgoretsky   (2007-12-13 14:27:00) [3]

> altatr  (13.12.2007 13:56:20)  [20]

При такой проверке пройдет и "!!!!!!!" и другие символы $30, а из целых 16 из печатных.


altatr   (2007-12-13 13:56:00) [4]

Alexandr Malygin ©   (12.12.07 13:03)  

вот код как я пытаюсь по уходу из эдита делать проверку

procedure TForm1.SrokEditExit(Sender: TObject);
begin
if not (SrokEdit.Text in ['0'..'9']) then
begin
ShowMessage('неверный формат!');
SrokEdit.Text:='';
Exit;
end;
end;

а почему бы не делать такую проверку?

procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text > '9999999999' then
begin
ShowMessage('неверный формат!');
Edit1.Text:='';
Exit;
end;
end;

количеством девяток можно ограничить длину вводимой строки. (точнее это будем максимальное допустимое число)


Alexandr Malygin   (2007-12-12 14:13:00) [5]

спорить не буду, вам виднее


Плохиш   (2007-12-12 13:52:00) [6]


> Alexandr Malygin ©   (12.12.07 13:46) [17]

Выкинуть поделку горе-кодера в корзину ещё легче...


Alexandr Malygin   (2007-12-12 13:46:00) [7]

>Anatoly Podgoretsky
я думаю что человеку не трудно будет напечатать в трех эдитах от 1 до 6 цифр


_Denis_   (2007-12-12 13:32:00) [8]

Не, своё меню сделай, и проверяй, чего там вставить хотят. Если не то, то не вставлять.


_Denis_   (2007-12-12 13:30:00) [9]


> Я не помню когда последний раз использовал это меню...

Я последний раз использовал, когда первый раз сел за комп:) Шесть лет назад лет.


Anatoly Podgoretsky   (2007-12-12 13:28:00) [10]

> Alexandr Malygin  (12.12.2007 13:14:06)  [6]

Как вас всех тянет, что-то позапрещать пользователям, это что мазохизм или в детсве игрушек не давали?


Alex   (2007-12-12 13:24:00) [11]

а шо, если отключить этот пункт то не будет возможности вставить туда текст?
Я не помню когда последний раз использовал это меню... да и вообще общество начинает мутировать в лучшую сторону... уже и не удивляет ситуация когда светловолосая девушка в офисе юзает контрл с и в...


Alexandr Malygin   (2007-12-12 13:22:00) [12]

понял, всем спасибо!


clickmaker   (2007-12-12 13:19:00) [13]


> возможно ли как то просто отключить строку "вставить"

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


Alex   (2007-12-12 13:19:00) [14]

Найти это меню и удалить из него пункт


_Denis_   (2007-12-12 13:17:00) [15]


> а возможно ли как то просто отключить строку "вставить"
> в контексте при нажатии правой кнопки мыши?

Как вариант - сделать своё меню.


Alexandr Malygin   (2007-12-12 13:16:00) [16]

в эдите


_Denis_   (2007-12-12 13:15:00) [17]


> не целая цифра это наверно дробная цифра

Без смайла не смотрится. Цифр всего 10 : 0..9. Чисел бесконечно много. Как положительных, так и отрицательных.:)


Alexandr Malygin   (2007-12-12 13:14:00) [18]

может выразился не так, вещественное число
а возможно ли как то просто отключить строку "вставить" в контексте при нажатии правой кнопки мыши?


Palladin   (2007-12-12 13:12:00) [19]

такой простой... если внимательно прочитаешь учебник, поймешь что String это много Char, а заключение набора ординальных типов в квадратные скобки есть формат записи константы типа Set of указанный ординальный тип
Char является ординальным типом, String не является ординальным типом, соответственно переменная String не может являтся элементом типа Set of, а вот запись String[номер символа], которая означает - значение Char являющееся символом в String в позиции [номер символа] вполне может быть элементом типа Set


Alex   (2007-12-12 13:12:00) [20]

не целая цифра это наверно дробная цифра


Страницы:   1 2

Наверх

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