Станционный диспетчер
Группа: Участник
Сообщений: 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
|