|
Вопрос # 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 вариант не сработал... просто не понимаю.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|