Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
ВнизTcaption и Char Найти похожие ветки
← →
Alexandr Malygin © (2007-12-12 13:03) [0]Подскажите плиз
Мне нужно проверить что в поле эдит находятся только цифры (целые и нет), я исключил ввод букв, пробелов, но осталась возможность впихнуть их в этот эдит с помощью 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"
вразумите пожалуйста, возможно ли их привести к общему формату??
← →
Desdechado © (2007-12-12 13:09) [1]Посмвольно нужно проверять, а не длинную строку сравнивать с одной цифрой в виде символа
> только цифры (целые и нет)
Что такое нецелая цифра? o_O
← →
clickmaker © (2007-12-12 13:11) [2]
> целые и нет
для "нецелых" нужно еще DecimalSeparator включить в набор допустимых символов
← →
Anatoly Podgoretsky © (2007-12-12 13:11) [3]> Alexandr Malygin (12.12.2007 13:03:00) [0]
Как думаешь может ли входить "123" в множество "0".."9"
← →
Alex (2007-12-12 13:12) [4]не целая цифра это наверно дробная цифра
← →
Palladin © (2007-12-12 13:12) [5]такой простой... если внимательно прочитаешь учебник, поймешь что String это много Char, а заключение набора ординальных типов в квадратные скобки есть формат записи константы типа Set of указанный ординальный тип
Char является ординальным типом, String не является ординальным типом, соответственно переменная String не может являтся элементом типа Set of, а вот запись String[номер символа], которая означает - значение Char являющееся символом в String в позиции [номер символа] вполне может быть элементом типа Set
← →
Alexandr Malygin © (2007-12-12 13:14) [6]может выразился не так, вещественное число
а возможно ли как то просто отключить строку "вставить" в контексте при нажатии правой кнопки мыши?
← →
_Denis_ © (2007-12-12 13:15) [7]
> не целая цифра это наверно дробная цифра
Без смайла не смотрится. Цифр всего 10 : 0..9. Чисел бесконечно много. Как положительных, так и отрицательных.:)
← →
Alexandr Malygin © (2007-12-12 13:16) [8]в эдите
← →
_Denis_ © (2007-12-12 13:17) [9]
> а возможно ли как то просто отключить строку "вставить"
> в контексте при нажатии правой кнопки мыши?
Как вариант - сделать своё меню.
← →
Alex (2007-12-12 13:19) [10]Найти это меню и удалить из него пункт
← →
clickmaker © (2007-12-12 13:19) [11]
> возможно ли как то просто отключить строку "вставить"
Лучше проверять строку на допустимость в момент, когда она действительно понадобится. при нажатии ОК, скажем.
Тогда, даже если юзер обошел твои ограничения и таки вставил туда левизну, выдавать ему месседж об ошибке.
← →
Alexandr Malygin © (2007-12-12 13:22) [12]понял, всем спасибо!
← →
Alex (2007-12-12 13:24) [13]а шо, если отключить этот пункт то не будет возможности вставить туда текст?
Я не помню когда последний раз использовал это меню... да и вообще общество начинает мутировать в лучшую сторону... уже и не удивляет ситуация когда светловолосая девушка в офисе юзает контрл с и в...
← →
Anatoly Podgoretsky © (2007-12-12 13:28) [14]> Alexandr Malygin (12.12.2007 13:14:06) [6]
Как вас всех тянет, что-то позапрещать пользователям, это что мазохизм или в детсве игрушек не давали?
← →
_Denis_ © (2007-12-12 13:30) [15]
> Я не помню когда последний раз использовал это меню...
Я последний раз использовал, когда первый раз сел за комп:) Шесть лет назад лет.
← →
_Denis_ © (2007-12-12 13:32) [16]Не, своё меню сделай, и проверяй, чего там вставить хотят. Если не то, то не вставлять.
← →
Alexandr Malygin © (2007-12-12 13:46) [17]>Anatoly Podgoretsky
я думаю что человеку не трудно будет напечатать в трех эдитах от 1 до 6 цифр
← →
Плохиш © (2007-12-12 13:52) [18]
> Alexandr Malygin © (12.12.07 13:46) [17]
Выкинуть поделку горе-кодера в корзину ещё легче...
← →
Alexandr Malygin © (2007-12-12 14:13) [19]спорить не буду, вам виднее
← →
altatr © (2007-12-13 13:56) [20]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;
количеством девяток можно ограничить длину вводимой строки. (точнее это будем максимальное допустимое число)
← →
Anatoly Podgoretsky © (2007-12-13 14:27) [21]> altatr (13.12.2007 13:56:20) [20]
При такой проверке пройдет и "!!!!!!!" и другие символы $30, а из целых 16 из печатных.
← →
morgoth (2007-12-13 15:35) [22]если поле для ввода чисел, то используй событие OnKeyPress
if not (Key in ["0".."9", #8]) then
Key := #0;
ну и перед работой с этим значением проверяй его, раз уж юзеры такие умные и копипастинг освоили
← →
morgoth (2007-12-13 15:42) [23]чет я не в тему чтоле )))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c