Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1197264407
Gydvin
2007-12-10 08:26
2008.01.13
windows server 2003 и русские названия папок


2-1197395228
@!!ex
2007-12-11 20:47
2008.01.13
Окно в котором нажа пункт меню. Как узнать?


15-1194860207
TIF
2007-11-12 12:36
2008.01.13
Vista глюканулась. В чём проблема?


15-1196866783
Astaldo
2007-12-05 17:59
2008.01.13
Помогите пожалуйста


4-1182121776
NOOBIX
2007-06-18 03:09
2008.01.13
Я многого достиг в Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский