C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
CSpinEdit — ошибки в реализации?, Этот глючный-глючный Builder...
BreakPointMAN
  Отправлено: 20.06.2005, 00:14


Станционный диспетчер

Группа: Участник
Сообщений: 86



Есть такой компонент в Builder-е, под названием CSpinEdit (на закладке Samples в палитре компонентов).

Задался я вот вопросом, а чего же это он так глючит?.. То исключение выкинет, то пропустит символы запрещенные, а то и вообще писать в поле ввода дает, когда свойство EditorEnabled в false стоит...

Вот на какой кусок кода я наткнулся:

CODE

bool __fastcall TCSpinEdit::IsValidChar(Char Key)
{
 bool Result;
 if(((Key == DecimalSeparator)       ||
     (Key == '+')                    ||
     (Key == '-')                    ||
    ((Key >= '0') && (Key <= '9')))  ||
    ((Key < 0x32) && (Key != Char(VK_RETURN))))
  Result = True;

 if (!(FEditorEnabled) &&
     Result &&
     ((Key >= 0x32) ||
      (Key == Char(VK_BACK)) ||
      (Key == Char(VK_DELETE))))
   Result = False;
 return Result;
}


А теперь — внимание! — с какого боку тут "0x32" ?! Может, все-таки, планировалось тут "0x20" (==32 dec) ?

Либо я чего-то не понимаю, либо тут ... мде... может и еще какие неправильности есть, хз.

Для справки: Borland C++ Builder 6 Update 4 (Build 10.166)

Файл взят из Borland\CBuilder6\Examples\Controls\Source\cspin.cpp

Вернуться в Вопросы программирования в C++Builder