| 
| 
 | Вопрос # 3 088/ вопрос открыт / | 
 |  Здравствуйте!У меня возникла такая проблема. Для компонента UpDown, ассоциированного с Edit1 (в котором записан 2009 год) получается при перелистывании 2 009, т.е. добавляется пробел и переменная считывается как текстовая). Как исправить, чтобы можно было вводить с клавиатуры год в некоторую переменную для всевозможных расчетов? Если стирать пробел, то все работает (иначе выскакивает сообщение, что эта переменная не есть целая).
 
|  |   Вопрос задала: Таран Виктория Николаевна (статус: Посетитель)Вопрос отправлен: 14 августа 2009, 19:42
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Таран Виктория Николаевна!Проверил. Это особенность компонента TUpDown. Проверял и на 2007, и на 2009 делфи.
 Но я подумал и нашел четыре(!!!) решения для Вас. Выбитайте:)
 Первое. выставить одно свойство
 UpDown1.Thousands := false; И всё.
 Второе. Воспользоваться компонентом TSpinEdit. Возможно это то, что Вам надо. Дополнительный плюс - теперь не надо использовать StrToInt - там есть свойство Value.
 Третий. малость извращенный. писать так
 IntToStr(StrToInt(StringReplace(Edit1.text,#160, '',[rfReplaceAll])))
 вообще то там должно быть #32 (код пробела). Но почему там #160 - предлагаю разобраться самостоятельно. Решётка в начале  - это просто способ написать chr(160) - то есть выбрать символ с таблицы символов по номеру. обратное преобразование - функция chr.
 и на последок. Не мучиться и брать значение не с едита, а у UpDown. вот так просто
 UpDown1.Position. Оно уже целое, поэтому преобразовывать не нужно. Правда есть одна проблема- это не 4 байтовое целое, а двухбайтовое .... Вам решать.
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 15 августа 2009, 00:11
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо! До четвертого варианта я додумалась, но попробовать не успела, оторвали некоторые проблемы. А тип Word меня вполне устраивает.Еще раз спасибо большое!!!!!!!!!!
 P.S. Но мне еще понравился и первый вариант (а TSprinEdit я вообще-то не использовала раньше, надо тоже попробовать)
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 15 августа 2009, 22:43; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 14 августа 2009, 19:56 [#1]:Странное поведение. вообще то не должно так быть. Скомпилированное приложение на других компьютерах ведёт себя так же? Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Таран Виктория Николаевна (статус: Посетитель), 14 августа 2009, 20:39 [#2]:На других компьютерах не пробовала. У меня установлен Delphi 2009. Может, это у него такие заморчки? |  
|   | Таран Виктория Николаевна (статус: Посетитель), 15 августа 2009, 22:06 [#3]:Как ни странно, но сработал именно вариант с тысячей (первый), четвертый все равно давал ошибку. Еще раз огромное спасибо!!!!!!!!!
 |  
|   | Вадим К (статус: Академик), 15 августа 2009, 22:43 [#4]:странно, как это 4 вариант не сработал... просто не понимаю. Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |