Приложения для работы с локальными базами данных______________539

Почему он не записан проще:

CBEDep->Text = Table2Dep->AsString;

т.е. почему свойству выпадающего списка CBEDep->Text просто не присвоить зна-
чение поля Dep? Дело в том, что в CBEDep установлено свойство Style = csDrop-
DownList, которое исключает возможность для пользователя редактировать текст
и тем самым указать, например, неверное название подразделения. Но при этом и
программно невозможно присвоить значение свойству Text. Поэтому приходится с
помощью метода IndexOf, присущего свойству CBEDep->Items (как любой пере-
менной типа TStrings), искать индекс строки, текст которой совпадает со значени-
ем поля, а затем присваивать этот индекс свойству CBEDep->ItemIndex.

К приведенному выше коду осуществляется обращение при событии OnAfter-
Scroll компонента Table2, т.е. после любого перемещения по набору данных Tab-
1е2. К этому же коду осуществляется обращение при событии OnChange компонен-
та PageControll, т.е. при переключении страницы. Только при переключении
страницы к нему еще добавляется оператор

Form2->DBMemol->ReadOnly = ! (PageControll->ActivePage == TabEdit);

который делает окно просмотра характеристики доступным или недоступным для
редактирования в зависимости от того, какая страница открыта.

Кнопка Записать осуществляет пересылку результатов редактирования в базу
данных. Код обработчика ее события OnClick имеет вид:

AnsiString s;

const AnsiString si =",";

if (Table2Dep->AsString != CBEDep->Text)
s = "отдел";

if (Table2Fam->AsString != EFam->Text)

(

if (s != "")  s += si;

s += " фамилию";

>

if (Form2->DBMemol->Modified)
{
if (s != "") s += si;

s += " характеристику";

}

if (ChangePhoto)
t
if (s != "") s += si;

s += " фотографию";

}

if (s != "")
if (Application->MessageBox(("Действительно хотите изменить "

+s+"?").с str(), "Подтвердите занесение в базу данных'
MB YESNO Т MB ICONQUESTION) == IDYES)

{
Table2->Edit();

)e

Table2Dep->AsString = CBEDep->Text;

Table2Fam->AsString = EFam->Text;

Table2Nam->AsString = ENam->Text;

Table2Par->AsString = EPar->Text;

Table2Year_b->AsInteger = SEYear->Value;

Table2Sex->AsBoolean = (RGSex->ItemIndex == 0)
CanPost = true;

Table2->Post() ;

CanPost = false;

Form2->DBMemol->Modified = false;

ChangePhoto=faIse;

