Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 68


MyDialog::MyDialog(TWindow*parent,TResId resId):TDialog(parent,resId){ TEdit*  edit;//Указатель на класс TEdit

TValidator*  valid;//Указатель на  базовый класс TValidator

edit=new TEdit(this,IDC_NAME,sizeof(tsb.nameEdit));//Создаем управляющий объект valid=new TFilterValidator("А-Яа-яА-za-z.");//Создаем объект фильтра  контроля -edit->SetValidator(valid);//Назначаем этот контроль для управляющему объекта edit=new TEdit(this,IDC_JOB,sizeof(tsb.jobEdit));//Аналогично для второго объекта valid=new TFilterValidator("А-Яа-я");//Фильтр для русских букв edit->SetValidator(valid);

edit=new TEdit(this,IDC_YEAR,sizeof(tsb.yearEdit));//Аналогично для 3-го объекта valid=new TRangeValidator(1900,1999);//Фильтр на  принадлежность диапазону edit->SetValidator(valid);

new TCheckBox(this,IDC_M);//Для кнопок контролировать нечего new TCheckBox(this,IDC_F);

TransferBuffer=&tsb;//Назначили  ts  буфером обмена memset(&tsb,0,sizeof(TSB)); index=0;//Начинаем с карточки #0 }

Прежде всего объявляются указатель на класс TEdit, с помощью которого будут создаваться управ­ляющие объекты для полей ввода и указатель на базовый по отношению ко всем классам контроля класс TValidator для создания объектов-фильтров производных классов (вспомним, что с помощью указателя на базовый класс можно создавать объекты производных классов). Далее для каждого поля ввода выпол­няется однотипная процедура:

•   создается управляющий объект

•   создается объект - контролирующий фильтр требуемого класса (в примере используются фильтры

классов TFilterValidator для контроля символов и TRangeValidator для контроля числового диапазона)

•   для управляющего объекта вызывается функция SetValidator(), в качестве аргумента которой вы­

ступает объект-фильтр

В принципе описанными изменениями можно было бы ограничиться. Программа позволит вводить в поля для фамилии или должности только прописные или строчные буквы (при этом в фамилии допусти­мы как русские, так латинские буквы, а в должности - только русские), а в поле года - только числа от 1900 до 1999. При вводе в поле года неправильных данных после нажатия кнопок "Добавить" или "ОК" на экран будет выведено предупреждающее окно (без текста).




Начало  Назад  Вперед



Книжный магазин