//---------------------------------------------------------------------------
#pragma hdrstop
#include "FormFunctions.h"      // для работы с элементами формы чипа
#include "PortFunctions.h"      // для работы с портом
#include "MainProgram.h"        // для работы с формой
#include "ChipFunctions.h"      // для работы с памятью чипа
#include "SendMsgFunctions.h"   // для отправки сообщений в лог
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
//--- ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ -------------------------------------------------
//---------------------------------------------------------------------------
form_inf        FormData;       // экземпляр данных формы
//---------------------------------------------------------------------------
//--- ИНИЦИАЛИЗАЦИЯ ДАННЫХ ФОРМЫ --------------------------------------------
//---------------------------------------------------------------------------
void InitFormInf(unsigned char FamilyCode)
{ // определяем размеры ричэдитов в зависимости от выбранного чипа
  switch(FamilyCode)
  { case 0:     // ручной выбор чипа
                switch(SelectedChip.Modify)
                { case 1:  // выбран ключ RW1990
                  case 2:  // выбран ключ AN1990
                  case 3:  // выбран ключ TM-2004
                           FormData.RE1Start=0;                            // в Richedit1 ничего не будем выводить
                           FormData.RE1Size=0;
                           FormData.RE2Start=0;                            // в Richedit2 ничего не будем выводить
                           FormData.RE2Size=0;
                           FormData.RE3Start=0;                            // в Richedit3 ничего не будем выводить
                           FormData.RE3Size=0;
                           FormData.RE4Start=0;                            // в Richedit4 ничего не будем выводить
                           FormData.RE4Size=0;
                           FormData.RE5Start=0;                            // в Richedit5 ничего не будем выводить
                           FormData.RE5Size=0;
                           FormData.RE6Start=0;                            // в Richedit6 ничего не будем выводить
                           FormData.RE6Size=0;
                           FormData.RE7Start=0;                            // в Richedit7 ничего не будем выводить
                           FormData.RE7Size=0;
                           FormData.RE8Start=0;                            // в Richedit8 ничего не будем выводить
                           FormData.RE8Size=0;
                           break;
                  default: break;
                }
                break;
    case 0x2:   // выбран чип DS1991
    case 0x33:  // выбран чип DS2432
    case 0x82:  // выбран чип DS1425
    case 0x43:  // выбран чип DS28EC20
                FormData.RE1Start=SelectedChip.Area1Start;      // в Richedit1 будем выводить данные ключа 1
                FormData.RE1Size=SelectedChip.Area1Size;
                FormData.RE2Start=SelectedChip.Area1Start;      // в Richedit2 будем выводить данные ключа 1
                FormData.RE2Size=SelectedChip.Area1Size;
                FormData.RE3Start=SelectedChip.Area2Start;      // в Richedit3 будем выводить данные ключа 2
                FormData.RE3Size=SelectedChip.Area2Size;
                FormData.RE4Start=SelectedChip.Area2Start;      // в Richedit4 будем выводить данные ключа 2
                FormData.RE4Size=SelectedChip.Area2Size;
                FormData.RE5Start=SelectedChip.Area3Start;      // в Richedit5 будем выводить данные ключа 3
                FormData.RE5Size=SelectedChip.Area3Size;
                FormData.RE6Start=SelectedChip.Area3Start;      // в Richedit6 будем выводить данные ключа 3
                FormData.RE6Size=SelectedChip.Area3Size;
                FormData.RE7Start=SelectedChip.Area4Start;      // в Richedit7 будем выводить данные блокнота
                FormData.RE7Size=SelectedChip.Area4Size;
                FormData.RE8Start=SelectedChip.Area4Start;      // в Richedit8 будем выводить данные блокнота
                FormData.RE8Size=SelectedChip.Area4Size;
                break;
    case 0x5:   // выбран чип DS2405
    case 0x2C:  // выбран чип DS2890
                FormData.RE1Start=0;                            // в Richedit1 ничего не будем выводить
                FormData.RE1Size=0;
                FormData.RE2Start=0;                            // в Richedit2 ничего не будем выводить
                FormData.RE2Size=0;
                FormData.RE3Start=0;                            // в Richedit3 ничего не будем выводить
                FormData.RE3Size=0;
                FormData.RE4Start=0;                            // в Richedit4 ничего не будем выводить
                FormData.RE4Size=0;
                FormData.RE5Start=0;                            // в Richedit5 ничего не будем выводить
                FormData.RE5Size=0;
                FormData.RE6Start=0;                            // в Richedit6 ничего не будем выводить
                FormData.RE6Size=0;
                FormData.RE7Start=0;                            // в Richedit7 ничего не будем выводить
                FormData.RE7Size=0;
                FormData.RE8Start=0;                            // в Richedit8 ничего не будем выводить
                FormData.RE8Size=0;
                break;
    case 0x14:  // выбран чип DS2430A
                FormData.RE1Start=SelectedChip.Area1Start;      // в Richedit1 будем выводить данные / блокнот данных
                FormData.RE1Size=SelectedChip.Area1Size;
                FormData.RE2Start=SelectedChip.Area1Start;      // в Richedit2 будем выводить данные / блокнот данных
                FormData.RE2Size=SelectedChip.Area1Size;
                FormData.RE3Start=SelectedChip.Area3Start;      // в Richedit3 будем выводить Application Register
                FormData.RE3Size=SelectedChip.Area3Size;
                FormData.RE4Start=SelectedChip.Area3Start;      // в Richedit4 будем выводить Application Register
                FormData.RE4Size=SelectedChip.Area3Size;
                FormData.RE5Start=0;                            // в Richedit5 ничего не будем выводить
                FormData.RE5Size=0;
                FormData.RE6Start=0;                            // в Richedit6 ничего не будем выводить
                FormData.RE6Size=0;
                FormData.RE7Start=0;                            // в Richedit7 ничего не будем выводить
                FormData.RE7Size=0;
                FormData.RE8Start=0;                            // в Richedit8 ничего не будем выводить
                FormData.RE8Size=0;
                break;
    case 0x6:   // выбран чип DS1993
    case 0x8:   // выбран чип DS1992
    case 0x9:   // выбран чип DS2502
    case 0xA:   // выбран чип DS1995
    case 0xC:   // выбран чип DS1996
    case 0xD:   // выбран чип DS28E05
    case 0x23:  // выбран чип DS24B33
                FormData.RE1Start=SelectedChip.Area1Start;      // в Richedit1 будем выводить данные
                FormData.RE1Size=SelectedChip.Area1Size;
                FormData.RE2Start=SelectedChip.Area1Start;      // в Richedit2 будем выводить данные
                FormData.RE2Size=SelectedChip.Area1Size;
                FormData.RE3Start=SelectedChip.Area2Start;      // в Richedit3 будем выводить блокнот
                FormData.RE3Size=SelectedChip.Area2Size;
                FormData.RE4Start=SelectedChip.Area2Start;      // в Richedit4 будем выводить блокнот
                FormData.RE4Size=SelectedChip.Area2Size;
                FormData.RE5Start=0;                            // в Richedit5 ничего не будем выводить
                FormData.RE5Size=0;
                FormData.RE6Start=0;                            // в Richedit6 ничего не будем выводить
                FormData.RE6Size=0;
                FormData.RE7Start=0;                            // в Richedit7 ничего не будем выводить
                FormData.RE7Size=0;
                FormData.RE8Start=0;                            // в Richedit8 ничего не будем выводить
                FormData.RE8Size=0;
                break;
    case 0x10:  // выбран чип DS18S20
    case 0x22:  // выбран чип DS1822
    case 0x24:  // выбран чип DS2415
    case 0x27:  // выбран чип DS2417
    case 0x28:  // выбран чип DS18B20
                FormData.RE1Start=SelectedChip.Area1Start;      // в Richedit1 будем выводить блокнот
                FormData.RE1Size=SelectedChip.Area1Size;
                FormData.RE2Start=SelectedChip.Area1Start;      // в Richedit2 будем выводить блокнот
                FormData.RE2Size=SelectedChip.Area1Size;
                FormData.RE3Start=0;                            // в Richedit3 ничего не будем выводить
                FormData.RE3Size=0;
                FormData.RE4Start=0;                            // в Richedit4 ничего не будем выводить
                FormData.RE4Size=0;
                FormData.RE5Start=0;                            // в Richedit5 ничего не будем выводить
                FormData.RE5Size=0;
                FormData.RE6Start=0;                            // в Richedit6 ничего не будем выводить
                FormData.RE6Size=0;
                FormData.RE7Start=0;                            // в Richedit7 ничего не будем выводить
                FormData.RE7Size=0;
                FormData.RE8Start=0;                            // в Richedit8 ничего не будем выводить
                FormData.RE8Size=0;
                break;
    case 0x4:   // выбран чип DS1994
    case 0x1A:  // выбран чип DS1963L
    case 0x1D:  // выбран чип DS2423
    case 0x2D:  // выбран чип DS2431
    case 0x3B:  // выбран чип MAX31826
    case 0x84:  // выбран чип DS1427
                FormData.RE1Start=SelectedChip.Area1Start;      // в Richedit1 будем выводить данные
                FormData.RE1Size=SelectedChip.Area1Size;
                FormData.RE2Start=SelectedChip.Area1Start;      // в Richedit2 будем выводить данные
                FormData.RE2Size=SelectedChip.Area1Size;
                FormData.RE3Start=SelectedChip.Area2Start;      // в Richedit3 будем выводить регистры
                FormData.RE3Size=SelectedChip.Area2Size;
                FormData.RE4Start=SelectedChip.Area2Start;      // в Richedit4 будем выводить регистры
                FormData.RE4Size=SelectedChip.Area2Size;
                FormData.RE5Start=SelectedChip.Area3Start;      // в Richedit5 будем выводить блокнот
                FormData.RE5Size=SelectedChip.Area3Size;
                FormData.RE6Start=SelectedChip.Area3Start;      // в Richedit6 будем выводить блокнот
                FormData.RE6Size=SelectedChip.Area3Size;
                FormData.RE7Start=0;                            // в Richedit7 ничего не будем выводить
                FormData.RE7Size=0;
                FormData.RE8Start=0;                            // в Richedit8 ничего не будем выводить
                FormData.RE8Size=0;
                break;
    default:    break;
  }
}
//----------------------------------------------------------------------------------
//--- СДЕЛАТЬ НЕВИДИМЫМИ ВСЕ ЭЛЕМЕНТЫ ПАНЕЛЕЙ 2, 3, ВЫКЛЮЧИТЬ ТАЙМЕР И ОЧИСТИТЬ ЛОГИ
//----------------------------------------------------------------------------------
void AllInvisible()
{ Form1->Panel2->Visible        = false;        // делаем невидимой панель 2
  Form1->Panel3->Visible        = false;        // делаем невидимой панель 3
  Form1->Button16->Visible      = false;        // делаем невидимой кнопку How to connect...
  // делаем невидимыми кнопки
  Form1->Button4->Visible       = false;
  Form1->Button5->Visible       = false;
  Form1->Button6->Visible       = false;
  Form1->Button7->Visible       = false;
  Form1->Button8->Visible       = false;
  Form1->Button9->Visible       = false;
  Form1->Button10->Visible      = false;
  Form1->Button11->Visible      = false;
  Form1->Button12->Visible      = false;
  Form1->Button14->Visible      = false;
  Form1->Button15->Visible      = false;
  // делаем невидимыми лэйблы
  Form1->Label3->Visible        = false;
  Form1->Label4->Visible        = false;
  Form1->Label5->Visible        = false;
  Form1->Label6->Visible        = false;
  // делаем невидимыми эдиты
  Form1->Edit4->Visible         = false;
  Form1->Edit5->Visible         = false;
  Form1->Edit6->Visible         = false;
  Form1->Edit7->Visible         = false;
  // делаем невидимыми страницы с полями для редактирования и метками
  Form1->PageControl1->Visible  = false;
  Form1->Label7->Visible        = false;
  Form1->RichEdit1->Visible     = false;
  Form1->Label8->Visible        = false;
  Form1->RichEdit2->Visible     = false;
  Form1->Label9->Visible        = false;
  Form1->RichEdit3->Visible     = false;
  Form1->Label10->Visible       = false;
  Form1->RichEdit4->Visible     = false;
  Form1->Label11->Visible       = false;
  Form1->RichEdit5->Visible     = false;
  Form1->Label12->Visible       = false;
  Form1->RichEdit6->Visible     = false;
  Form1->Label13->Visible       = false;
  Form1->RichEdit7->Visible     = false;
  Form1->Label14->Visible       = false;
  Form1->RichEdit8->Visible     = false;
  // выключить таймер
  Form1->Timer1->Enabled=false;
  // ричэдиты для логов делаем невидимыми и очищаем
  Form1->RichEdit9->Visible=false;      // делаем невидимым окно логов
  Form1->RichEdit9->Clear();            // очищаем окно логов
  // делаем невидимыми и очищаем чекбоксы
  Form1->CheckBox1->Checked=false;      // очищаем чекбокс 1
  Form1->CheckBox1->Visible=false;      // делаем его невидимым
  Form1->CheckBox2->Checked=false;      // очищаем чекбокс 2
  Form1->CheckBox2->Visible=false;      // делаем его невидимым
  Form1->CheckBox3->Checked=false;      // очищаем чекбокс 3
  Form1->CheckBox3->Visible=false;      // делаем его невидимым
  Form1->CheckBox4->Checked=false;      // очищаем чекбокс 4
  Form1->CheckBox4->Visible=false;      // делаем его невидимым
}
//---------------------------------------------------------------------------
//--- СДЕЛАТЬ ВИДИМЫМИ И ПОДПИСАТЬ ОБЩИЕ ЭЛЕМЕНТЫ ФОРМЫ ---------------------
//---------------------------------------------------------------------------
void CommonVisible()
{ Form1->Panel2->Visible = true;                // показываем панель с элементами управления
  Form1->Panel3->Visible = true;                // показываем панель, содержащую путь к файлу
  Form1->Panel3->Top = Form1->Panel2->Top + Form1->Panel2->Height - 1;  // задаём положение нижней панели
  Form1->Edit1->Text=SelectedChip.Name;         // подписываем имя чипа на форме
  Form1->Button16->Visible = true;              // делаем видимой кнопку How to connect...
  // ричэдиты для логов делаем видимыми
  Form1->RichEdit9->Visible=true;       // делаем видимым окно логов
}
//---------------------------------------------------------------------------
//--- АКТИВИРОВАТЬ КНОПКИ УПРАВЛЕНИЯ НА ФОРМЕ -------------------------------
//---------------------------------------------------------------------------
void EnableControlButtons()
{ Form1->Button4->Enabled       = true;
  Form1->Button5->Enabled       = true;
  Form1->Button6->Enabled       = true;
  Form1->Button7->Enabled       = true;
  Form1->Button8->Enabled       = true;
  Form1->Button9->Enabled       = true;
  Form1->Button10->Enabled      = true;
  Form1->Button11->Enabled      = true;
  Form1->Button12->Enabled      = true;
  Form1->Button14->Enabled      = true;
  Form1->Button15->Enabled      = true;
}
//---------------------------------------------------------------------------
//--- ДЕАКТИВИРОВАТЬ КНОПКИ УПРАВЛЕНИЯ НА ФОРМЕ -----------------------------
//---------------------------------------------------------------------------
void DisableControlButtons()
{ Form1->Button4->Enabled       = false;
  Form1->Button5->Enabled       = false;
  Form1->Button6->Enabled       = false;
  Form1->Button7->Enabled       = false;
  Form1->Button8->Enabled       = false;
  Form1->Button9->Enabled       = false;
  Form1->Button10->Enabled      = false;
  Form1->Button11->Enabled      = false;
  Form1->Button12->Enabled      = false;
  Form1->Button14->Enabled      = false;
  Form1->Button15->Enabled      = false;
}
//---------------------------------------------------------------------------
//--- ИНИЦИАЛИЗАЦИЯ ДАННЫХ ФОРМЫ ДЛЯ ВЫБРАННОЙ ОБЛАСТИ ----------------------
//---------------------------------------------------------------------------
void InitDataOnForm(unsigned char OutForm)
{ unsigned int i;               // счётчик

  switch(OutForm)
  { case 1:     // инициализируем RichEdit1 (ДАННЫЕ)
                Form1->RichEdit1->Visible=false;        // делаем область невидимой
                Form1->RichEdit1->Clear();              // очищаем RichEdit1
                for(i=0; i<FormData.RE1Size/8; i++)                 // заполняем строки
                  Form1->RichEdit1->Lines->Add(IntToHex(int(8*i+FormData.RE1Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit1->SelStart=46*(i-1)+44;
                Form1->RichEdit1->SelLength=2;
                Form1->RichEdit1->SelText="";
                Form1->RichEdit1->Visible=true;         // делаем область видимой
                break;
    case 2:     // инициализируем RichEdit2 (ДАННЫЕ)
                Form1->RichEdit2->Visible=false;        // делаем область невидимой
                Form1->RichEdit2->Clear();              // очищаем RichEdit2
                for(i=0; i<FormData.RE2Size/8; i++)                 // заполняем строки
                  Form1->RichEdit2->Lines->Add(IntToHex(int(8*i+FormData.RE2Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit2->SelStart=46*(i-1)+44;
                Form1->RichEdit2->SelLength=2;
                Form1->RichEdit2->SelText="";
                Form1->RichEdit2->Visible=true;         // делаем область видимой
                break;
    case 3:     // инициализируем RichEdit3 (РИГИСТРЫ)
                Form1->RichEdit3->Visible=false;        // делаем область невидимой
                Form1->RichEdit3->Clear();              // очищаем RichEdit3
                for(i=0; i<FormData.RE3Size/8; i++)                 // заполняем строки
                  Form1->RichEdit3->Lines->Add(IntToHex(int(8*i+FormData.RE3Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit3->SelStart=46*(i-1)+44;
                Form1->RichEdit3->SelLength=2;
                Form1->RichEdit3->SelText="";
                Form1->RichEdit3->Visible=true;         // делаем область видимой
                break;
    case 4:     // инициализируем RichEdit4 (РИГИСТРЫ)
                Form1->RichEdit4->Visible=false;        // делаем область невидимой
                Form1->RichEdit4->Clear();              // очищаем RichEdit4
                for(i=0; i<FormData.RE4Size/8; i++)                 // заполняем строки
                  Form1->RichEdit4->Lines->Add(IntToHex(int(8*i+FormData.RE4Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit4->SelStart=46*(i-1)+44;
                Form1->RichEdit4->SelLength=2;
                Form1->RichEdit4->SelText="";
                Form1->RichEdit4->Visible=true;         // делаем область видимой
                break;
    case 5:     // инициализируем RichEdit5 (БЛОКНОТ)
                Form1->RichEdit5->Visible=false;        // делаем область невидимой
                Form1->RichEdit5->Clear();              // очищаем RichEdit5
                for(i=0; i<FormData.RE5Size/8; i++)                 // заполняем строки
                  Form1->RichEdit5->Lines->Add(IntToHex(int(8*i+FormData.RE5Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit5->SelStart=46*(i-1)+44;
                Form1->RichEdit5->SelLength=2;
                Form1->RichEdit5->SelText="";
                Form1->RichEdit5->Visible=true;         // делаем область видимой
    case 6:     // инициализируем RichEdit6 (БЛОКНОТ)
                Form1->RichEdit6->Visible=false;        // делаем область невидимой
                Form1->RichEdit6->Clear();              // очищаем RichEdit6
                for(i=0; i<FormData.RE6Size/8; i++)                 // заполняем строки
                  Form1->RichEdit6->Lines->Add(IntToHex(int(8*i+FormData.RE6Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit6->SelStart=46*(i-1)+44;
                Form1->RichEdit6->SelLength=2;
                Form1->RichEdit6->SelText="";
                Form1->RichEdit6->Visible=true;         // делаем область видимой
                break;
    case 7:     // инициализируем RichEdit7 (СЕКРЕТ)
                Form1->RichEdit7->Visible=false;        // делаем область невидимой
                Form1->RichEdit7->Clear();              // очищаем RichEdit7
                for(i=0; i<FormData.RE7Size/8; i++)                 // заполняем строки
                  Form1->RichEdit7->Lines->Add(IntToHex(int(8*i+FormData.RE7Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit7->SelStart=46*(i-1)+44;
                Form1->RichEdit7->SelLength=2;
                Form1->RichEdit7->SelText="";
                Form1->RichEdit7->Visible=true;         // делаем область видимой
                break;
    case 8:     // инициализируем RichEdit8 (СЕКРЕТ)
                Form1->RichEdit8->Visible=false;        // делаем область невидимой
                Form1->RichEdit8->Clear();              // очищаем RichEdit8
                for(i=0; i<FormData.RE8Size/8; i++)                 // заполняем строки
                  Form1->RichEdit8->Lines->Add(IntToHex(int(8*i+FormData.RE8Start),4)+": FF FF FF FF FF FF FF FF   |   яяяяяяяя");
                // убираем переносы в последней строке
                Form1->RichEdit8->SelStart=46*(i-1)+44;
                Form1->RichEdit8->SelLength=2;
                Form1->RichEdit8->SelText="";
                Form1->RichEdit8->Visible=true;                 // делаем область видимой
                break;
    default:    break;
  }
}
//---------------------------------------------------------------------------
//--- ПОМЕЩАЕМ ДАННЫЕ ИЗ ПАМЯТИ НА ФОРМУ ------------------------------------
//---------------------------------------------------------------------------
void PlaceDataToForm(unsigned char OutForm, unsigned char InArea)
{ char TempBuf[1], OutHexBuf[3];        // для преобразования
  unsigned int LineNum, LocalNum;       // для вычисления позиции байта
  unsigned int Size;                    // размер выводимой области
  AnsiString TempROMStr;                // временная переменная для преобразования ROM

  switch(InArea)   // параметры области из которой нужно выводить данные
  { case 1:     Size=SelectedChip.Area1Size;
                break;
    case 2:     Size=SelectedChip.Area2Size;
                break;
    case 3:     Size=SelectedChip.Area3Size;
                break;
    case 4:     Size=SelectedChip.Area4Size;
                break;
    default:    Size=0;
                break;
  }

  switch(OutForm)  // какую область нужно заполнить
  { case 0:     // помещаем нужные данные в Edit3
                TempROMStr="";
                for(unsigned int i=0; i<8; i++)
                { // переводим очередной байт в hex-строку
                  TempBuf[0]=SelectedChip.ROM[i];       // берём байт
                  BinToHex(TempBuf,OutHexBuf,1);        // преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       // строка должна заканчиваться нулём
                  TempROMStr+=UpperCase(OutHexBuf);     // переводим в верхний регистр
                  TempROMStr+=" ";
                }
                Form1->Edit3->Text=TempROMStr.SubString(1,23);
                break;
    case 1:     // помещаем нужные данные в RichEdit1
                Form1->RichEdit1->Visible=false;       // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)       // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        // преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       // строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit1->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit1->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit1->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit1->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit1->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit1->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit1->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit1->SelLength=0;                  // отменяем выделение
                Form1->RichEdit1->Visible=true;                 // делаем область видимой
                break;
    case 2:     // помещаем нужные данные в RichEdit2
                Form1->RichEdit2->Visible=false;       // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)       // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        // преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       // строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit2->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit2->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit2->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit2->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit2->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit2->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit2->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit2->SelLength=0;                  // отменяем выделение
                Form1->RichEdit2->Visible=true;                 // делаем область видимой
                break;
    case 3:     // помещаем нужные данные в RichEdit3
                Form1->RichEdit3->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        //преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       //строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit3->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit3->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit3->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit3->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit3->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit3->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit3->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit3->SelLength=0;                  // отменяем выделение
                Form1->RichEdit3->Visible=true;                 // делаем область видимой
                break;
    case 4:     // помещаем нужные данные в RichEdit4
                Form1->RichEdit4->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        //преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       //строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit4->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit4->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit4->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit4->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit4->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit4->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit4->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit4->SelLength=0;                  // отменяем выделение
                Form1->RichEdit4->Visible=true;                 // делаем область видимой
                break;
    case 5:     // помещаем нужные данные в RichEdit5
                Form1->RichEdit5->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        //преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       //строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit5->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit5->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit5->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit5->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit5->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit5->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit5->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit5->SelLength=0;                  // отменяем выделение
                Form1->RichEdit5->Visible=true;                 // делаем область видимой
                break;
    case 6:     // помещаем нужные данные в RichEdit6
                Form1->RichEdit6->Visible=false;                        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)      // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        //преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       //строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit6->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit6->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit6->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit6->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit6->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit6->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit6->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit6->SelLength=0;                  // отменяем выделение
                Form1->RichEdit6->Visible=true;                 // делаем область видимой
                break;
    case 7:     // помещаем нужные данные в RichEdit7
                Form1->RichEdit7->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        //преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       //строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit7->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit7->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit7->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit7->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit7->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit7->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit7->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit7->SelLength=0;                  // отменяем выделение
                Form1->RichEdit7->Visible=true;                 // делаем область видимой
                break;
    case 8:     // помещаем нужные данные в RichEdit8
                Form1->RichEdit8->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // переводим очередной байт в hex-строку
                  switch(InArea)
                  { case 1: TempBuf[0]=SelectedChip.Area1[i];
                            break;
                    case 2: TempBuf[0]=SelectedChip.Area2[i];
                            break;
                    case 3: TempBuf[0]=SelectedChip.Area3[i];
                            break;
                    case 4: TempBuf[0]=SelectedChip.Area4[i];
                            break;
                    default: TempBuf[0]=0;
                             break;
                  }
                  BinToHex(TempBuf,OutHexBuf,1);        //преобразовать строку в целое (байт)
                  OutHexBuf[2]=0;                       //строка должна заканчиваться нулём
                  // и вычисляем его положение
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // меняем область слева
                  Form1->RichEdit8->SelStart=LineNum*46+6+3*LocalNum;   // ставим курсор на начало байт
                  Form1->RichEdit8->SelLength=2;                        // выделяем 2 символа
                  Form1->RichEdit8->SelText=UpperCase(OutHexBuf);       // заменяем на OutHexBuf (2 символа и нуль-терминатор, который не будет записан)
                  // меняем область справа
                  Form1->RichEdit8->SelStart=LineNum*46+36+LocalNum;    // ставим курсор в нужную позицию
                  Form1->RichEdit8->SelLength=1;                        // выделяем 1 символ
                  if(unsigned(TempBuf[0])<0x1F) OutHexBuf[1]=0x1F;                // если символ непечатный - заменяем
                  else                          OutHexBuf[1]=TempBuf[0];          // иначе пишем как есть
                  Form1->RichEdit8->SelText=OutHexBuf[1];               // пишем
                }
                // устанавливаем курсор на начало
                Form1->RichEdit8->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit8->SelLength=0;                  // отменяем выделение
                Form1->RichEdit8->Visible=true;                 // делаем область видимой
                break;
    default:    break;
  }
}
//---------------------------------------------------------------------------
//--- ПОМЕЩАЕМ ДАННЫЕ С ФОРМЫ В ПАМЯТЬ --------------------------------------
//---------------------------------------------------------------------------
void GetDataToMemory(unsigned char InForm, unsigned char OutArea)
{ AnsiString SubStr;                    // для преобразования
  char *InHexBuf, TempBuf[1];           // для преобразования
  unsigned int LineNum, LocalNum;       // для вычисления позиции байта
  unsigned int Size;                    // размер области

  switch(OutArea)  // параметры области, в которую нужно выводить данные
  { case 1:     Size=SelectedChip.Area1Size;
                break;
    case 2:     Size=SelectedChip.Area2Size;
                break;
    case 3:     Size=SelectedChip.Area3Size;
                break;
    case 4:     Size=SelectedChip.Area4Size;
                break;
    default:    Size=0;
                break;
  }

  switch(InForm)// из какой области брать данные
  { case 0:     // забираем данные с Edit3 (ROM)
                Form1->Edit3->Visible=false;            // делаем область невидимой
                for(unsigned int i=0;i<8;i++)           // будем перебирать все байты
                { // забираем байт с формы и переводим его hex
                  Form1->Edit3->SelStart=3*i;           // ставим курсор на начало байта (в области слева)
                  Form1->Edit3->SelLength=2;            // выделяем 2 символа
                  SubStr=LowerCase(Form1->Edit3->SelText); // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  SelectedChip.ROM[i]=TempBuf[0];
                }
                // устанавливаем курсор на начало
                Form1->Edit3->SelStart=0;               // ставим курсор в нужную позицию
                Form1->Edit3->SelLength=0;              // отменяем выделение
                Form1->Edit3->Visible=true;             // делаем область невидимой
                break;
    case 1:     // забираем данные с RichEdit1 (ДАННЫЕ)
                Form1->RichEdit1->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit1->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit1->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit1->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit1->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit1->SelLength=0;                  // отменяем выделение
                Form1->RichEdit1->Visible=true;                 // делаем область видимой
                break;
    case 2:     // забираем данные с RichEdit2 (ДАННЫЕ)
                Form1->RichEdit2->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit2->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit2->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit2->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit2->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit2->SelLength=0;                  // отменяем выделение
                Form1->RichEdit2->Visible=true;                 // делаем область видимой
                break;
    case 3:     // забираем данные с RichEdit3 (РИГИСТРЫ)
                Form1->RichEdit3->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit3->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit3->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit3->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit3->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit3->SelLength=0;                  // отменяем выделение
                Form1->RichEdit3->Visible=true;                 // делаем область видимой
                break;
    case 4:     // забираем данные с RichEdit4 (РИГИСТРЫ)
                Form1->RichEdit4->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit4->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit4->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit4->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit4->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit4->SelLength=0;                  // отменяем выделение
                Form1->RichEdit4->Visible=true;                 // делаем область видимой
                break;
    case 5:     // забираем данные с RichEdit5 (БЛОКНОТ)
                Form1->RichEdit5->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit5->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit5->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit5->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit5->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit5->SelLength=0;                  // отменяем выделение
                Form1->RichEdit5->Visible=true;                 // делаем область видимой
                break;
    case 6:     // забираем данные с RichEdit6 (БЛОКНОТ)
                Form1->RichEdit6->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit6->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit6->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit6->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit6->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit6->SelLength=0;                  // отменяем выделение
                Form1->RichEdit6->Visible=true;                 // делаем область видимой
                break;
    case 7:     // забираем данные с RichEdit7 (СЕКРЕТ)
                Form1->RichEdit7->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit7->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit7->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit7->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit7->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit7->SelLength=0;                  // отменяем выделение
                Form1->RichEdit7->Visible=true;                 // делаем область видимой
                break;
    case 8:     // забираем данные с RichEdit8 (СЕКРЕТ)
                Form1->RichEdit8->Visible=false;        // делаем область невидимой
                for(unsigned int i=0;i<Size;i++)        // будем перебирать все байты
                { // вычисляем позицию байта на форме
                  LineNum=i/8;                          // номер строки, в которой расположен байт
                  LocalNum=i-8*LineNum;                 // номер байта в строке
                  // забираем байт с формы и переводим его hex
                  Form1->RichEdit8->SelStart=46*LineNum+6+3*LocalNum;   // ставим курсор на начало байта (в области слева)
                  Form1->RichEdit8->SelLength=2;                        // выделяем 2 символа
                  SubStr=LowerCase(Form1->RichEdit8->SelText);          // получаем их в строку
                  InHexBuf=SubStr.c_str();               //скопировать в буфер байт для передачи (в виде строки)
                  HexToBin(InHexBuf,TempBuf,1);          //преобразовать строку в целое (байт)
                  // сохраняем в память
                  switch(OutArea)
                  { case 1:  SelectedChip.Area1[i]=TempBuf[0];
                             break;
                    case 2:  SelectedChip.Area2[i]=TempBuf[0];
                             break;
                    case 3:  SelectedChip.Area3[i]=TempBuf[0];
                             break;
                    case 4:  SelectedChip.Area4[i]=TempBuf[0];
                             break;
                    default: break;
                  }
                }
                // устанавливаем курсор на начало
                Form1->RichEdit8->SelStart=6;                   // ставим курсор в нужную позицию
                Form1->RichEdit8->SelLength=0;                  // отменяем выделение
                Form1->RichEdit8->Visible=true;                 // делаем область видимой
                break;
    default:    break;
  }
}
//---------------------------------------------------------------------------
//--- ПОДПИСЫВАНИЕ ОБЩИХ ЭЛЕМЕНТОВ НА ВЫБРАННОМ ЯЗЫКЕ -----------------------
//---------------------------------------------------------------------------
void RenameFormElements()
{ switch(LangNum)
  { case 1:  // выбран русский язык
             Form1->File1->Caption              = "Файл";
             Form1->Open1->Caption              = "Загрузить данные из файла...";
             Form1->Save1->Caption              = "Сохранить данные в файл";
             Form1->Saveas1->Caption            = "Сохранить данные в файл как...";
             Form1->SaveLogas1->Caption         = "Сохранить лог как...";
             Form1->Exit1->Caption              = "Выход";
             Form1->ChipSelect1->Caption        = "Выбрать чип";
             Form1->LangSelect1->Caption        = "Язык";
             Form1->Lang1->Caption              = "  English";
             Form1->Lang2->Caption              = "! Русский";
             Form1->ProgrammerSelect1->Caption  = "Программатор";
             Form1->Help1->Caption              = "Помощь";
             Form1->About1->Caption             = "О Программе";
             Form1->Chippdf1->Caption           = "О Выбранном Чипе";
             Form1->Button1->Caption            = "Подключить";
             Form1->Button2->Caption            = "Отключить";
             Form1->Button3->Caption            = "Сканировать Шину 1-W";
             Form1->Label1->Caption             = "Найдено:";
             Form1->Label2->Caption             = "Выбран чип:";
             Form1->Label16->Caption            = "Выбран ROM:";
             Form1->WritableKeys1->Caption      = "Записываемые Ключи";
             Form1->Button13->Caption           = "Расчёт CRC";
             break;
    case 0:  // выбран английский язык
    default: // по-умолчанию - английский
             Form1->File1->Caption              = "File";
             Form1->Open1->Caption              = "Load Data from File...";
             Form1->Save1->Caption              = "Save Data to File";
             Form1->Saveas1->Caption            = "Save Data to File as...";
             Form1->SaveLogas1->Caption         = "Save Log as...";
             Form1->Exit1->Caption              = "Exit";
             Form1->ChipSelect1->Caption        = "Chip Select";
             Form1->LangSelect1->Caption        = "Language";
             Form1->Lang1->Caption              = "! English";
             Form1->Lang2->Caption              = "  Русский";
             Form1->ProgrammerSelect1->Caption  = "Hardware";
             Form1->Help1->Caption              = "Help";
             Form1->About1->Caption             = "About Program";
             Form1->Chippdf1->Caption           = "About Selected Chip";
             Form1->Button1->Caption            = "Connect";
             Form1->Button2->Caption            = "Disconnect";
             Form1->Button3->Caption            = "Scan 1-Wire Bus";
             Form1->Label1->Caption             = "Founded:";
             Form1->Label2->Caption             = "Selected chip:";
             Form1->Label16->Caption            = "Selected ROM:";
             Form1->WritableKeys1->Caption      = "Writable Keys";
             Form1->Button13->Caption           = "Calculate CRC";
             break;
  }
}
//---------------------------------------------------------------------------
//--- ПЕРЕПОДПИСЫВАЕМ ЭЛЕМЕНТЫ В МЕНЮ ВЫБОРА ПРОГРАММАТОРА ------------------
//---------------------------------------------------------------------------
void RenameProgrammerMenu()
{ switch(SelectedProgrammer)
  { case 1:  Form1->RH00041->Caption = "* RH-0004";
             Form1->RH00101->Caption = "   RH-0010";
             break;
    case 2:
    default: Form1->RH00041->Caption = "   RH-0004";
             Form1->RH00101->Caption = "* RH-0010";

  }
}
//---------------------------------------------------------------------------
//--- ЗАПОМИНАЕМ ВЫБОР ЯЗЫКА И ПРОГРАММАТОРА --------------------------------
//---------------------------------------------------------------------------
void SaveOptions()
{ TFileStream* fs;              // указатель на поток записи
  char Symbol[2];               // символы для сохранения

  fs = new TFileStream("options.ini",fmCreate|fmOpenWrite);  // открываем файл для записи
  Symbol[0]=char(LangNum);                                   // символ, который будем сохранять
  Symbol[1]=char(SelectedProgrammer);                        // символ, который будем сохранять
  fs->Write(Symbol,2);                                       // сохраняем в файл
  delete fs;                                                 // закрываем поток записи
}
//---------------------------------------------------------------------------
//--- ЗАГРУЖАЕМ СОХРАНЁННЫЙ ВЫБОР ЯЗЫКА И ПРОГРАММАТОРА ---------------------
//---------------------------------------------------------------------------
void LoadOptions()
{ TFileStream* fs;              // указатель на поток чтения
  unsigned char rffch[2];       // сюда читаем байты из файла

  if(FileExists("options.ini"))
  { fs=new TFileStream("options.ini",fmOpenRead);         // создаём поток для чтения
    if(fs->Read(rffch,2))                                 // если успешно прочитали 2 байта - пихаем их куда нужно
    {         LangNum=rffch[0];                           // первый байт - язык
              SelectedProgrammer=rffch[1];                // второй - тип программатора
    }
    else
    {         LangNum=0;                                  // по-умолчанию - английский
              SelectedProgrammer=2;                       // по-умолчанию - RH-0010
    }
    delete fs;                                            // удаляем поток чтения
  }
  else
  {           LangNum=0;                                  // по-умолчанию - английский
              SelectedProgrammer=2;                       // по-умолчанию - RH-0010
  }
}
//---------------------------------------------------------------------------
//--- ИНИЦИАЛИЗАЦИЯ ЭЛЕМЕНТОВ ФОРМЫ ДЛЯ ВЫБРАННОГО ЧИПА ---------------------
//---------------------------------------------------------------------------
void InitForm(unsigned char FamilyCode)
{ AllInvisible();                                               // маскируем все элементы
  if(Port!=INVALID_HANDLE_VALUE)  EnableControlButtons();       // настраиваем кнопки управления
  else                            DisableControlButtons();
  // настраиваем и показываем нужные для данного чипа элементы
  switch(FamilyCode)
  { case 0x0: // ручной выбор чипа (для чипов с перезаписываемым ROM)
                switch(SelectedChip.Modify)     // выбираем по введённой модификации
                { case 1: // элементы формы для чипа RW1990
                          // настраиваем кнопки
                           Form1->Button4->Caption = "Write ROM";       // надпись на кнопке
                           Form1->Button4->Height  = 21;                // высота кнопки
                           Form1->Button4->Width   = 80;                // ширина кнопки
                           Form1->Button4->Left    = 8;                 // расстояние от левого края
                           Form1->Button4->Top     = 8;                 // расстояние от верхнего края
                           Form1->Button4->Visible = true;              // делаем кнопку видимой
                           Form1->Button5->Caption = "Read ROM";        // надпись на кнопке
                           Form1->Button5->Height  = 21;                // высота кнопки
                           Form1->Button5->Width   = 80;                // ширина кнопки
                           Form1->Button5->Left    = 87;                // расстояние от левого края
                           Form1->Button5->Top     = 8;                 // расстояние от верхнего края
                           Form1->Button5->Visible = true;              // делаем кнопку видимой
                          // настраиваем Panel2
                           Form1->Panel2->Height           = 153;       // высота страницы
                          // настраиваем PageControl1
                           // не настраиваем, он нам не нужен
                          // настраиваем поля для редактирования и метки на PageControl1
                           Form1->Label15->Top             = 33;        // расстояние от верхнего края для метки лога
                           Form1->RichEdit9->Top           = 49;        // расстояние от верхнего края для окна лога
                          // посылаем сообщение в лог
                           SendMsgToLogForm(152,"");  // сообщаем дополнительную информацию
                           break;
                  case 2: // элементы формы для чипа AN1990
                           SendMsgToLogForm(160,"");      // сообщаем об ошибке в документе для AN1990
                  case 3: // элементы формы для чипа TM-2004
                          // настраиваем кнопки
                           Form1->Button4->Caption = "Write ROM";       // надпись на кнопке
                           Form1->Button4->Height  = 21;                // высота кнопки
                           Form1->Button4->Width   = 80;                // ширина кнопки
                           Form1->Button4->Left    = 8;                 // расстояние от левого края
                           Form1->Button4->Top     = 8;                 // расстояние от верхнего края
                           Form1->Button4->Visible = true;              // делаем кнопку видимой
                           Form1->Button5->Caption = "Read ROM";        // надпись на кнопке
                           Form1->Button5->Height  = 21;                // высота кнопки
                           Form1->Button5->Width   = 80;                // ширина кнопки
                           Form1->Button5->Left    = 87;                // расстояние от левого края
                           Form1->Button5->Top     = 8;                 // расстояние от верхнего края
                           Form1->Button5->Visible = true;              // делаем кнопку видимой
                           Form1->Button6->Caption = "Block ROM *";     // надпись на кнопке
                           Form1->Button6->Height  = 21;                // высота кнопки
                           Form1->Button6->Width   = 80;                // ширина кнопки
                           Form1->Button6->Left    = 166;               // расстояние от левого края
                           Form1->Button6->Top     = 8;                 // расстояние от верхнего края
                           Form1->Button6->Visible = true;              // делаем кнопку видимой
                          // настраиваем Panel2
                           Form1->Panel2->Height           = 153;       // высота страницы
                          // настраиваем PageControl1
                           // не настраиваем, он нам не нужен
                          // настраиваем поля для редактирования и метки на PageControl1
                           Form1->Label15->Top             = 33;        // расстояние от верхнего края для метки лога
                           Form1->RichEdit9->Top           = 49;        // расстояние от верхнего края для окна лога
                          // посылаем сообщение в лог
                           SendMsgToLogForm(152,"");  // сообщаем дополнительную информацию
                           SendMsgToLogForm(161,"");  // сообщаем об ограниченной функциональности
                           break;
                  default: break;
                }
                break;
    case 0x2: // элементы формы для чипа DS1991
    case 0x82:// элементы формы для чипа DS1425
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 123;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to Subkey";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Data to Subkey";       // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Data from Subkey";      // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 123;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Write Password to Subkey";   // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 150;                          // ширина кнопки
                Form1->Button9->Left    = 239;                          // расстояние от левого края
                Form1->Button9->Top     = 28;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
              // настраиваем чекбоксы
                Form1->CheckBox1->Left  = 8;                            // расстояние от левого края
                Form1->CheckBox1->Top   = 54;                           // расстояние от верха
                Form1->CheckBox1->Width = 169;                          // ширина
                Form1->CheckBox1->Caption = "Apply Action for Subkey 1";
                Form1->CheckBox1->Visible = true;                       // делаем видимым
                Form1->CheckBox2->Left  = 200;                          // расстояние от левого края
                Form1->CheckBox2->Top   = 54;                           // расстояние от верха
                Form1->CheckBox2->Width = 169;                          // ширина
                Form1->CheckBox2->Caption = "Apply Action for Subkey 2";
                Form1->CheckBox2->Visible = true;                       // делаем видимым
                Form1->CheckBox3->Left  = 8;                            // расстояние от левого края
                Form1->CheckBox3->Top   = 78;                           // расстояние от верха
                Form1->CheckBox3->Width = 169;                          // ширина
                Form1->CheckBox3->Caption = "Apply Action for Subkey 3";
                Form1->CheckBox3->Visible = true;                       // делаем видимым
              // настраиваем Panel2
                Form1->Panel2->Height           = 614;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 394;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 98;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "Subkey 1:";          // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 70;                   // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                      // готовим RichEdit1
                Form1->Label8->Caption          = "Subkey 1:";          // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 70;                   // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Subkey 2:";          // надпись на метке
                Form1->Label9->Top              = 93;                   // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 70;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 109;                  // расстояние от верхнего края
              InitDataOnForm(3);                                      // готовим RichEdit13
                Form1->Label10->Caption         = "Subkey 2:";          // надпись на метке
                Form1->Label10->Top             = 93;                   // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 70;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 109;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label11->Caption         = "Subkey 3:";          // надпись на метке
                Form1->Label11->Top             = 186;                  // расстояние от верхнего края
                Form1->Label11->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit5->Height        = 70;                   // высота RichEdit5
                Form1->RichEdit5->Top           = 202;                  // расстояние от верхнего края
              InitDataOnForm(5);                                      // готовим RichEdit15
                Form1->Label12->Caption         = "Subkey 3:";          // надпись на метке
                Form1->Label12->Top             = 186;                  // расстояние от верхнего края
                Form1->Label12->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit6->Height        = 70;                   // высота RichEdit6
                Form1->RichEdit6->Top           = 202;                  // расстояние от верхнего края
              InitDataOnForm(6);                                        // готовим RichEdit6
                Form1->Label13->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label13->Top             = 279;                  // расстояние от верхнего края
                Form1->Label13->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit7->Height        = 70;                   // высота RichEdit7
                Form1->RichEdit7->Top           = 295;                  // расстояние от верхнего края
              InitDataOnForm(7);                                      // готовим RichEdit17
                Form1->Label14->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label14->Top             = 279;                  // расстояние от верхнего края
                Form1->Label14->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit8->Height        = 70;                   // высота RichEdit8
                Form1->RichEdit8->Top           = 295;                  // расстояние от верхнего края
              InitDataOnForm(8);                                        // готовим RichEdit8
                Form1->Label15->Top             = 494;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 510;                  // расстояние от верхнего края для окна лога
                // посылаем сообщение в лог с расшифровкой байтов блокнота
                SendMsgToLogForm(132,"");  // сообщаем дополнительную информацию
                break;
    case 0x4: // элементы формы для чипа DS1994
    case 0x84:// элементы формы для чипа DS1427
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 100;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 126;                          // ширина кнопки
                Form1->Button5->Left    = 107;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to Memory";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 242;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Data Memory";          // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 100;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Write Timekeeping Regs";     // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 126;                          // ширина кнопки
                Form1->Button8->Left    = 107;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Read Data Memory";           // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 100;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read Timekeeping Regs";     // надпись на кнопке
                Form1->Button10->Height  = 21;                          // высота кнопки
                Form1->Button10->Width   = 126;                         // ширина кнопки
                Form1->Button10->Left    = 107;                         // расстояние от левого края
                Form1->Button10->Top     = 48;                          // расстояние от верхнего края
                Form1->Button10->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "TA1";                       // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 20;                          // ширина метки
                Form1->Label3->Left      = 250;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "TA2";                       // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 20;                          // ширина метки
                Form1->Label4->Left      = 287;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "E/S";                       // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 20;                          // ширина метки
                Form1->Label5->Left      = 325;                         // расстояние от левого края
                Form1->Label5->Top       = 32;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 24;                          // ширина метки
                Form1->Label6->Left      = 361;                         // расстояние от левого края
                Form1->Label6->Top       = 32;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 250;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "00";                        // текст в эдите
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 22;                          // ширина метки
                Form1->Edit5->Left       = 287;                         // расстояние от левого края
                Form1->Edit5->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "00";                        // текст в эдите
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 22;                          // ширина метки
                Form1->Edit6->Left       = 325;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "00";                        // текст в эдите
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 22;                          // ширина метки
                Form1->Edit7->Left       = 361;                         // расстояние от левого края
                Form1->Edit7->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем чекбоксы
                Form1->CheckBox1->Left  = 8;                            // расстояние от левого края
                Form1->CheckBox1->Top   = 74;                           // расстояние от верха
                Form1->CheckBox1->Width = 169;                          // ширина
                Form1->CheckBox1->Caption = "Read/Write Status byte";
                Form1->CheckBox1->Visible = true;                       // делаем видимым
                Form1->CheckBox2->Left  = 8;                            // расстояние от левого края
                Form1->CheckBox2->Top   = 98;                           // расстояние от верха
                Form1->CheckBox2->Width = 169;                          // ширина
                Form1->CheckBox2->Caption = "Read/Write Control byte";
                Form1->CheckBox2->Visible = true;
                Form1->CheckBox3->Left  = 170;                          // расстояние от левого края
                Form1->CheckBox3->Top   = 74;                           // расстояние от верха
                Form1->CheckBox3->Width = 350;                          // ширина
                Form1->CheckBox3->Caption = "Read/Write all others timekeeping bytes";
                Form1->CheckBox3->Visible = true;                       // делаем видимым
                Form1->CheckBox4->Left  = 170;                          // расстояние от левого края
                Form1->CheckBox4->Top   = 98;                           // расстояние от верха
                Form1->CheckBox4->Width = 350;                          // ширрина
                Form1->CheckBox4->Caption = "Apply Copy Scratchpad Three Times";
                Form1->CheckBox4->Visible = true;                       // делаем видимым
              // настраиваем Panel2
                Form1->Panel2->Height           = 632;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 392;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 118;                  // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "Data Memory:";       // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "Data Memory:";       // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Timekeeping registers:";     // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 70;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Timekeeping registers:";     // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 70;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label11->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label11->Top             = 277;                  // расстояние от верхнего края
                Form1->Label11->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit5->Height        = 70;                   // высота RichEdit5
                Form1->RichEdit5->Top           = 293;                  // расстояние от верхнего края
              InitDataOnForm(5);                                        // готовим RichEdit5
                Form1->Label12->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label12->Top             = 277;                  // расстояние от верхнего края
                Form1->Label12->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit6->Height        = 70;                   // высота RichEdit6
                Form1->RichEdit6->Top           = 293;                  // расстояние от верхнего края
              InitDataOnForm(6);                                        // готовим RichEdit6
                Form1->Label15->Top             = 512;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 528;                  // расстояние от верхнего края для окна лога
                break;
    case 0x5: // элементы формы для чипа DS2405
              // настраиваем кнопки
                Form1->Button4->Caption = "Read State";                 // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 80;                           // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Toggle State";               // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 80;                           // ширина кнопки
                Form1->Button5->Left    = 87;                           // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "Readed State:";             // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 84;                          // ширина метки
                Form1->Label3->Left      = 185;                         // расстояние от левого края
                Form1->Label3->Top       = 12;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "???";                       // текст в эдите Current State
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 84;                          // ширина метки
                Form1->Edit4->Left       = 257;                         // расстояние от левого края
                Form1->Edit4->Top        = 8;                           // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 153;                  // высота страницы
              // настраиваем PageControl1
                // не настраиваем, он нам не нужен
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label15->Top             = 33;                   // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 49;                   // расстояние от верхнего края для окна лога
                break;
    case 0x9: // элементы формы для чипа DS2502 / DS1982
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Data *";               // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Data";                  // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Read Data with CRC8";        // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Status Bytes *";       // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Status Bytes";          // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Write Scratchpad Byte To Memory *";  // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 219;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "TA1";                       // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 20;                          // ширина метки
                Form1->Label3->Left      = 243;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "TA2";                       // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 20;                          // ширина метки
                Form1->Label4->Left      = 272;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "Scratchpad";                // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 56;                          // ширина метки
                Form1->Label5->Left      = 304;                         // расстояние от левого края
                Form1->Label5->Top       = 32;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 25;                          // ширина метки
                Form1->Label6->Left      = 366;                         // расстояние от левого края
                Form1->Label6->Top       = 32;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 243;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "00";                        // текст в эдите
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 22;                          // ширина метки
                Form1->Edit5->Left       = 272;                         // расстояние от левого края
                Form1->Edit5->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "00";                        // текст в эдите
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 22;                          // ширина метки
                Form1->Edit6->Left       = 322;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "00";                        // текст в эдите
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 22;                          // ширина метки
                Form1->Edit7->Left       = 367;                         // расстояние от левого края
                Form1->Edit7->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 456;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 255;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 73;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "EPROM Data Memory:"; // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "EPROM Data Memory:";// надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Status Bytes:";      // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 25;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Status Bytes:";      // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 25;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label15->Top             = 336;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 352;                  // расстояние от верхнего края для окна лога
              // посылаем сообщение в лог
                SendMsgToLogForm(161,"");  // сообщаем об ограниченной функциональности
                break;
    case 0xD: // элементы формы для чипа DS28E05
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Data";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Write Administrative Data";  // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 140;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Read Data";                  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 110;                          // ширина кнопки
                Form1->Button6->Left    = 8;                            // расстояние от левого края
                Form1->Button6->Top     = 28;                           // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Read Administrative Data";   // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 140;                          // ширина кнопки
                Form1->Button7->Left    = 117;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 24;                          // ширина метки
                Form1->Label6->Left      = 358;                         // расстояние от левого края
                Form1->Label6->Top       = 8;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit7->Text       = "00";                        // текст в эдите
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 22;                          // ширина метки
                Form1->Edit7->Left       = 359;                         // расстояние от левого края
                Form1->Edit7->Top        = 24;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 444;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 268;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 53;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "User Data Memory:"; // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "User Data Memory:"; // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Administrative Data Memory:";        // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 40;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Administrative Data Memory:";        // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 40;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label15->Top             = 324;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 340;                  // расстояние от верхнего края для окна лога
                // посылаем сообщение в лог с расшифровкой байтов блокнота
                SendMsgToLogForm(155,"");  // сообщаем о максимальном напряжении питания
                break;
    case 0x10:// элементы формы для чипа DS18S20
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to EEPROM";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Start Cyclic Polling";       // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Stop Cyclic Polling";        // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Read Power Supply";          // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 110;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read EEPROM";               // надпись на кнопке
                Form1->Button10->Height  = 21;                          // высота кнопки
                Form1->Button10->Width   = 110;                         // ширина кнопки
                Form1->Button10->Left    = 117;                         // расстояние от левого края
                Form1->Button10->Top     = 48;                          // расстояние от верхнего края
                Form1->Button10->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "Temperature (oC)";          // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 84;                          // ширина метки
                Form1->Label3->Left      = 247;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "???";                       // текст в эдите Temp(oC)
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 84;                          // ширина метки
                Form1->Edit4->Left       = 247;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 265;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 70;                   // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 73;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "Scratchpad:";        // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 25;                   // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                      // готовим RichEdit1
                Form1->Label8->Caption          = "Scratchpad:";        // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 25;                   // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label15->Top             = 145;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 161;                  // расстояние от верхнего края для окна лога
                // посылаем сообщение в лог с расшифровкой байтов блокнота
                SendMsgToLogForm(130,"");  // сообщаем о действии кнопки write scratchpad
                break;
    case 0x14:// элементы формы для чипа DS2430A
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 114;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 115;                          // ширина кнопки
                Form1->Button5->Left    = 121;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to EEPROM";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 151;                          // ширина кнопки
                Form1->Button6->Left    = 242;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Application Register";               // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 140;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Write EEPROM";               // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 89;                           // ширина кнопки
                Form1->Button8->Left    = 147;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Read Status Register";       // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 151;                          // ширина кнопки
                Form1->Button9->Left    = 242;                          // расстояние от левого края
                Form1->Button9->Top     = 28;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read Application Register";  // надпись на кнопке
                Form1->Button10->Height  = 21;                           // высота кнопки
                Form1->Button10->Width   = 140;                          // ширина кнопки
                Form1->Button10->Left    = 8;                            // расстояние от левого края
                Form1->Button10->Top     = 48;                           // расстояние от верхнего края
                Form1->Button10->Visible = true;                         // делаем кнопку видимой
                Form1->Button11->Caption = "Read EEPROM";               // надпись на кнопке
                Form1->Button11->Height  = 21;                          // высота кнопки
                Form1->Button11->Width   = 89;                          // ширина кнопки
                Form1->Button11->Left    = 147;                         // расстояние от левого края
                Form1->Button11->Top     = 48;                          // расстояние от верхнего края
                Form1->Button11->Visible = true;                        // делаем кнопку видимой
                Form1->Button12->Caption = "Copy Application Register && Lock";// надпись на кнопке
                Form1->Button12->Height  = 21;                          // высота кнопки
                Form1->Button12->Width   = 228;                         // ширина кнопки
                Form1->Button12->Left    = 8;                           // расстояние от левого края
                Form1->Button12->Top     = 68;                          // расстояние от верхнего края
                Form1->Button12->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "Status Register:";          // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 75;                          // ширина метки
                Form1->Label3->Left      = 260;                         // расстояние от левого края
                Form1->Label3->Top       = 62;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 339;                         // расстояние от левого края
                Form1->Edit4->Top        = 58;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                // настраиваем Panel2
                Form1->Panel2->Height           = 379;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 163;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 94;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "Scratchpad / EEPROM Memory:"; // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 70;                   // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "Scratchpad / EEPROM Memory:"; // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 70;                   // высота RichEdit1
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Application Register:"; // надпись на метке
                Form1->Label9->Top              = 93;                   // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 25;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 109;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Application Register:"; // надпись на метке
                Form1->Label10->Top             = 93;                   // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 25;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 109;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label15->Top             = 259;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 275;                  // расстояние от верхнего края для окна лога
                break;
    case 0x1A:// элементы формы для чипа DS1963L
    case 0x1D:// элементы формы для чипа DS2423
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to Memory";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Data Memory";          // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Data Memory";           // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Read Data Memory and Counters"; // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 219;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "TA1";                       // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 20;                          // ширина метки
                Form1->Label3->Left      = 247;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "TA2";                       // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 20;                          // ширина метки
                Form1->Label4->Left      = 284;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "E/S";                       // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 20;                          // ширина метки
                Form1->Label5->Left      = 322;                         // расстояние от левого края
                Form1->Label5->Top       = 32;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 20;                          // ширина метки
                Form1->Label6->Left      = 358;                         // расстояние от левого края
                Form1->Label6->Top       = 32;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 247;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "00";                        // текст в эдите
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 22;                          // ширина метки
                Form1->Edit5->Left       = 284;                         // расстояние от левого края
                Form1->Edit5->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "00";                        // текст в эдите
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 22;                          // ширина метки
                Form1->Edit6->Left       = 322;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "00";                        // текст в эдите
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 22;                          // ширина метки
                Form1->Edit7->Left       = 359;                         // расстояние от левого края
                Form1->Edit7->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 555;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 360;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 73;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Scratchpad:";        // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 70;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 70;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label11->Caption         = "Counters:";          // надпись на метке
                Form1->Label11->Top             = 277;                  // расстояние от верхнего края
                Form1->Label11->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit5->Height        = 38;                   // высота RichEdit5
                Form1->RichEdit5->Top           = 293;                  // расстояние от верхнего края
              InitDataOnForm(5);                                        // готовим RichEdit5
                Form1->Label12->Caption         = "Counters:";          // надпись на метке
                Form1->Label12->Top             = 277;                  // расстояние от верхнего края
                Form1->Label12->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit6->Height        = 38;                   // высота RichEdit6
                Form1->RichEdit6->Top           = 293;                  // расстояние от верхнего края
              InitDataOnForm(6);                                        // готовим RichEdit6
                Form1->Label15->Top             = 435;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 451;                  // расстояние от верхнего края для окна лога
                // посылаем сообщение в лог с расшифровкой байтов блокнота
                SendMsgToLogForm(147,"");  // сообщаем о байтах Counter
                break;
    case 0x6: // элементы формы для чипа DS1993
    case 0x8: // элементы формы для чипа DS1992
    case 0xA: // элементы формы для чипа DS1995
    case 0xC: // элементы формы для чипа DS1996
    case 0x23:// элементы формы для чипа DS24B33
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to Memory";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Data Memory";          // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Data Memory";           // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "TA1";                       // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 20;                          // ширина метки
                Form1->Label3->Left      = 247;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "TA2";                       // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 20;                          // ширина метки
                Form1->Label4->Left      = 284;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "E/S";                       // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 20;                          // ширина метки
                Form1->Label5->Left      = 322;                         // расстояние от левого края
                Form1->Label5->Top       = 32;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 20;                          // ширина метки
                Form1->Label6->Left      = 358;                         // расстояние от левого края
                Form1->Label6->Top       = 32;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите TA1
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 247;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "00";                        // текст в эдите TA2
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 22;                          // ширина метки
                Form1->Edit5->Left       = 284;                         // расстояние от левого края
                Form1->Edit5->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "00";                        // текст в эдите E/S
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 22;                          // ширина метки
                Form1->Edit6->Left       = 322;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "00";                        // текст в эдите Test
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 22;                          // ширина метки
                Form1->Edit7->Left       = 359;                         // расстояние от левого края
                Form1->Edit7->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 494;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 299;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 73;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Scratchpad:";        // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 70;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 70;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label15->Top             = 374;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 390;                  // расстояние от верхнего края для окна лога
                break;
    case 0x24: // элементы формы для чипа DS2415
    case 0x27: // элементы формы для чипа DS2417
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Clock (Control + Counter)";    // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 193;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Clock (Control + Counter)";     // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 193;                          // ширина кнопки
                Form1->Button5->Left    = 200;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 225;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 70;                   // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 33;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "Control + Counter bytes:";   // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 25;                   // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                      // готовим RichEdit1
                Form1->Label8->Caption          = "Control + Counter bytes:";   // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 25;                   // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label15->Top             = 105;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 121;                  // расстояние от верхнего края для окна лога
                // посылаем сообщение в лог с расшифровкой байтов блокнота
                SendMsgToLogForm(141,"");  // сообщаем о значащих байтах
                break;
    case 0x22:// элементы формы для чипа DS1822
    case 0x28:// элементы формы для чипа DS18B20
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to EEPROM";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Start Cyclic Polling";       // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Stop Cyclic Polling";        // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Read Power Supply";          // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 110;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read EEPROM";               // надпись на кнопке
                Form1->Button10->Height  = 21;                          // высота кнопки
                Form1->Button10->Width   = 110;                         // ширина кнопки
                Form1->Button10->Left    = 117;                         // расстояние от левого края
                Form1->Button10->Top     = 48;                          // расстояние от верхнего края
                Form1->Button10->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "Temperature (oC)";          // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 84;                          // ширина метки
                Form1->Label3->Left      = 247;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "???";                       // текст в эдите Temp(oC)
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 84;                          // ширина метки
                Form1->Edit4->Left       = 247;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 265;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 70;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 73;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "Scratchpad:";        // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 25;                   // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                      // готовим RichEdit1
                Form1->Label8->Caption          = "Scratchpad:";        // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 25;                   // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label15->Top             = 145;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 161;                  // расстояние от верхнего края для окна лога
                // посылаем сообщение в лог с расшифровкой байтов блокнота
                SendMsgToLogForm(131,"");  // сообщаем о действии кнопки write scratchpad
                break;
    case 0x2C:// элементы формы для чипа DS2890
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Position";             // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 80;                           // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Position";              // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 80;                           // ширина кнопки
                Form1->Button5->Left    = 87;                           // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Increment";                  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 80;                           // ширина кнопки
                Form1->Button6->Left    = 8;                            // расстояние от левого края
                Form1->Button6->Top     = 28;                           // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Decrement";                  // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 80;                           // ширина кнопки
                Form1->Button7->Left    = 87;                           // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Write Control";              // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 80;                           // ширина кнопки
                Form1->Button8->Left    = 8;                            // расстояние от левого края
                Form1->Button8->Top     = 48;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Read Control";               // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 80;                           // ширина кнопки
                Form1->Button9->Left    = 87;                           // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "Position Value:";           // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 84;                          // ширина метки
                Form1->Label3->Left      = 185;                         // расстояние от левого края
                Form1->Label3->Top       = 12;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "Control Register:";         // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 84;                          // ширина метки
                Form1->Label4->Left      = 185;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "Feature Register:";         // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 84;                          // ширина метки
                Form1->Label5->Left      = 185;                         // расстояние от левого края
                Form1->Label5->Top       = 52;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "???";                       // текст в эдите Position Value
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 44;                          // ширина метки
                Form1->Edit4->Left       = 270;                         // расстояние от левого края
                Form1->Edit4->Top        = 8;                           // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "???";                       // текст в эдите Control Register
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 44;                          // ширина метки
                Form1->Edit5->Left       = 270;                         // расстояние от левого края
                Form1->Edit5->Top        = 28;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "???";                       // текст в эдите Feature Register
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 44;                          // ширина метки
                Form1->Edit6->Left       = 270;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 193;                  // высота страницы
              // настраиваем PageControl1
                // он нам не нужен
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label15->Top             = 73;                    // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 89;                    // расстояние от верхнего края для окна лога
                break;
    case 0x2D:// элементы формы для чипа DS2431
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to Memory";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Register Page";        // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Register Page";         // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Write Data Memory";          // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 110;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read Data Memory";          // надпись на кнопке
                Form1->Button10->Height  = 21;                          // высота кнопки
                Form1->Button10->Width   = 110;                         // ширина кнопки
                Form1->Button10->Left    = 117;                         // расстояние от левого края
                Form1->Button10->Top     = 48;                          // расстояние от верхнего края
                Form1->Button10->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "TA1";                       // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 20;                          // ширина метки
                Form1->Label3->Left      = 247;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "TA2";                       // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 20;                          // ширина метки
                Form1->Label4->Left      = 284;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "E/S";                       // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 20;                          // ширина метки
                Form1->Label5->Left      = 322;                         // расстояние от левого края
                Form1->Label5->Top       = 32;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 25;                          // ширина метки
                Form1->Label6->Left      = 358;                         // расстояние от левого края
                Form1->Label6->Top       = 32;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 247;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "00";                        // текст в эдите
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 22;                          // ширина метки
                Form1->Edit5->Left       = 284;                         // расстояние от левого края
                Form1->Edit5->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "00";                        // текст в эдите
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 22;                          // ширина метки
                Form1->Edit6->Left       = 322;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "00";                        // текст в эдите
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 21;                          // ширина метки
                Form1->Edit7->Left       = 359;                         // расстояние от левого края
                Form1->Edit7->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 497;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 302;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 73;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Registers Page:";    // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 25;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Registers Page:";    // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 25;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label11->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label11->Top             = 232;                  // расстояние от верхнего края
                Form1->Label11->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit5->Height        = 25;                   // высота RichEdit5
                Form1->RichEdit5->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(5);                                        // готовим RichEdit5
                Form1->Label12->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label12->Top             = 232;                  // расстояние от верхнего края
                Form1->Label12->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit6->Height        = 25;                   // высота RichEdit6
                Form1->RichEdit6->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(6);                                        // готовим RichEdit6
                Form1->Label15->Top             = 377;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 393;                  // расстояние от верхнего края для окна лога
                break;
    case 0x33:// элементы формы для чипа DS2432 / DS1961S
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to Memory";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Register Page";        // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Register Page";         // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Write Data Memory";          // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 110;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read Data Memory";          // надпись на кнопке
                Form1->Button10->Height  = 21;                          // высота кнопки
                Form1->Button10->Width   = 110;                         // ширина кнопки
                Form1->Button10->Left    = 117;                         // расстояние от левого края
                Form1->Button10->Top     = 48;                          // расстояние от верхнего края
                Form1->Button10->Visible = true;                        // делаем кнопку видимой
                Form1->Button11->Caption = "Write Secret Memory";       // надпись на кнопке
                Form1->Button11->Height  = 21;                          // высота кнопки
                Form1->Button11->Width   = 110;                         // ширина кнопки
                Form1->Button11->Left    = 8;                           // расстояние от левого края
                Form1->Button11->Top     = 68;                          // расстояние от верхнего края
                Form1->Button11->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "TA1";                       // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 20;                          // ширина метки
                Form1->Label3->Left      = 247;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "TA2";                       // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 20;                          // ширина метки
                Form1->Label4->Left      = 284;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "E/S";                       // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 20;                          // ширина метки
                Form1->Label5->Left      = 322;                         // расстояние от левого края
                Form1->Label5->Top       = 32;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 25;                          // ширина метки
                Form1->Label6->Left      = 358;                         // расстояние от левого края
                Form1->Label6->Top       = 32;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 247;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "00";                        // текст в эдите
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 22;                          // ширина метки
                Form1->Edit5->Left       = 284;                         // расстояние от левого края
                Form1->Edit5->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "00";                        // текст в эдите
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 22;                          // ширина метки
                Form1->Edit6->Left       = 322;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "00";                        // текст в эдите
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 21;                          // ширина метки
                Form1->Edit7->Left       = 359;                         // расстояние от левого края
                Form1->Edit7->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 565;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 350;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 93;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Secret Memory:";     // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 25;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Secret Memory:";     // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 25;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label11->Caption         = "Register Page:";     // надпись на метке
                Form1->Label11->Top             = 232;                  // расстояние от верхнего края
                Form1->Label11->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit5->Height        = 25;                   // высота RichEdit5
                Form1->RichEdit5->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(5);                                        // готовим RichEdit5
                Form1->Label12->Caption         = "Register Page:";     // надпись на метке
                Form1->Label12->Top             = 232;                  // расстояние от верхнего края
                Form1->Label12->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit6->Height        = 25;                   // высота RichEdit6
                Form1->RichEdit6->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(6);                                        // готовим RichEdit6
                Form1->Label13->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label13->Top             = 280;                  // расстояние от верхнего края
                Form1->Label13->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit7->Height        = 25;                   // высота RichEdit7
                Form1->RichEdit7->Top           = 296;                  // расстояние от верхнего края
              InitDataOnForm(7);                                        // готовим RichEdit7
                Form1->Label14->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label14->Top             = 280;                  // расстояние от верхнего края
                Form1->Label14->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit8->Height        = 25;                   // высота RichEdit8
                Form1->RichEdit8->Top           = 296;                  // расстояние от верхнего края
              InitDataOnForm(8);                                        // готовим RichEdit8
                Form1->Label15->Top             = 445;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 461;                  // расстояние от верхнего края для окна лога
                // если выбрана DS1961S, то дополнительно показываем кнопку Refresh Data Memory
                switch(SelectedChip.Modify)
                { case 1: Form1->Button12->Caption = "Refresh Data Memory";     // надпись на кнопке
                          Form1->Button12->Height  = 21;                        // высота кнопки
                          Form1->Button12->Width   = 110;                       // ширина кнопки
                          Form1->Button12->Left    = 117;                       // расстояние от левого края
                          Form1->Button12->Top     = 68;                        // расстояние от верхнего края
                          Form1->Button12->Visible = true;                      // делаем кнопку видимой
                          break;
                  case 0:
                  default: SendMsgToLogForm(167,"");    // если у вас DS1961S - выберите его вручную
                }
                break;
    case 0x3B:// элементы формы для чипа MAX31826
              // настраиваем кнопки
                Form1->Button15->Caption = "Read Lock Status";          // надпись на кнопке
                Form1->Button15->Height  = 21;                          // высота кнопки
                Form1->Button15->Width   = 110;                         // ширина кнопки
                Form1->Button15->Left    = 8;                           // расстояние от левого края
                Form1->Button15->Top     = 8;                           // расстояние от верхнего края
                Form1->Button15->Visible = true;                        // делаем кнопку видимой
                Form1->Button4->Caption = "Convert T";                  // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 57;                           // ширина кнопки
                Form1->Button4->Left    = 239;                          // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad 1";          // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Read Pow.Supp.";             // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 94;                           // ширина кнопки
                Form1->Button6->Left    = 295;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Scratchpad 2";         // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Scratchpad 2";          // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Write EEPROM";               // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 110;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read EEPROM";               // надпись на кнопке
                Form1->Button10->Height  = 21;                          // высота кнопки
                Form1->Button10->Width   = 110;                         // ширина кнопки
                Form1->Button10->Left    = 117;                         // расстояние от левого края
                Form1->Button10->Top     = 48;                          // расстояние от верхнего края
                Form1->Button10->Visible = true;                        // делаем кнопку видимой
                Form1->Button11->Caption = "Lock Low Memory";           // надпись на кнопке
                Form1->Button11->Height  = 21;                          // высота кнопки
                Form1->Button11->Width   = 110;                         // ширина кнопки
                Form1->Button11->Left    = 8;                           // расстояние от левого края
                Form1->Button11->Top     = 68;                          // расстояние от верхнего края
                Form1->Button11->Visible = true;                        // делаем кнопку видимой
                Form1->Button12->Caption = "Lock High Memory";          // надпись на кнопке
                Form1->Button12->Height  = 21;                          // высота кнопки
                Form1->Button12->Width   = 110;                         // ширина кнопки
                Form1->Button12->Left    = 117;                         // расстояние от левого края
                Form1->Button12->Top     = 68;                          // расстояние от верхнего края
                Form1->Button12->Visible = true;                        // делаем кнопку видимой
                Form1->Button14->Caption = "Copy Scratchpad 2 to Memory"; // надпись на кнопке
                Form1->Button14->Height  = 21;                          // высота кнопки
                Form1->Button14->Width   = 150;                         // ширина кнопки
                Form1->Button14->Left    = 239;                         // расстояние от левого края
                Form1->Button14->Top     = 28;                          // расстояние от верхнего края
                Form1->Button14->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "Page Address";              // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 70;                          // ширина метки
                Form1->Label3->Left      = 240;                         // расстояние от левого края
                Form1->Label3->Top       = 52;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "Measured T";                // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 60;                          // ширина метки
                Form1->Label4->Left      = 325;                         // расстояние от левого края
                Form1->Label4->Top       = 52;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 266;                         // расстояние от левого края
                Form1->Edit4->Top        = 68;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "-000.0000";                 // текст в эдите
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 56;                          // ширина метки
                Form1->Edit7->Left       = 325;                         // расстояние от левого края
                Form1->Edit7->Top        = 68;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              if(SelectedProgrammer == 2)       // если выбран программатор RH-0010
              { // настраиваем чекбоксы
                Form1->CheckBox1->Caption = "Strong pull-up needed (check if parasitic power is used)";
                Form1->CheckBox1->Height = 17;
                Form1->CheckBox1->Width = 280;
                Form1->CheckBox1->Left = 8;
                Form1->CheckBox1->Top = 92;
                Form1->CheckBox1->Visible = true;
              }
              // настраиваем Panel2
                Form1->Panel2->Height           = 537;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 302;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 113;                  // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 161;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "EEPROM Data Memory:";// надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 161;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Scratchpad2 (to the EEPROM):";    // надпись на метке
                Form1->Label9->Top              = 184;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 25;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Scratchpad 2 (to the EEPROM):";    // надпись на метке
                Form1->Label10->Top             = 184;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 25;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 200;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label11->Caption         = "Scratchpad 1 (Temp + Config):";      // надпись на метке
                Form1->Label11->Top             = 232;                  // расстояние от верхнего края
                Form1->Label11->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit5->Height        = 25;                   // высота RichEdit5
                Form1->RichEdit5->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(5);                                        // готовим RichEdit5
                Form1->Label12->Caption         = "Scratchpad 1 (Temp + Config):";      // надпись на метке
                Form1->Label12->Top             = 232;                  // расстояние от верхнего края
                Form1->Label12->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit6->Height        = 25;                   // высота RichEdit6
                Form1->RichEdit6->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(6);                                        // готовим RichEdit6
                Form1->Label15->Top             = 417;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 433;                  // расстояние от верхнего края для окна лога
                break;
    case 0x43:// элементы формы для чипа DS28EC20
              // настраиваем кнопки
                Form1->Button4->Caption = "Write Scratchpad";           // надпись на кнопке
                Form1->Button4->Height  = 21;                           // высота кнопки
                Form1->Button4->Width   = 110;                          // ширина кнопки
                Form1->Button4->Left    = 8;                            // расстояние от левого края
                Form1->Button4->Top     = 8;                            // расстояние от верхнего края
                Form1->Button4->Visible = true;                         // делаем кнопку видимой
                Form1->Button5->Caption = "Read Scratchpad";            // надпись на кнопке
                Form1->Button5->Height  = 21;                           // высота кнопки
                Form1->Button5->Width   = 110;                          // ширина кнопки
                Form1->Button5->Left    = 117;                          // расстояние от левого края
                Form1->Button5->Top     = 8;                            // расстояние от верхнего края
                Form1->Button5->Visible = true;                         // делаем кнопку видимой
                Form1->Button6->Caption = "Copy Scratchpad to Memory";  // надпись на кнопке
                Form1->Button6->Height  = 21;                           // высота кнопки
                Form1->Button6->Width   = 150;                          // ширина кнопки
                Form1->Button6->Left    = 239;                          // расстояние от левого края
                Form1->Button6->Top     = 8;                            // расстояние от верхнего края
                Form1->Button6->Visible = true;                         // делаем кнопку видимой
                Form1->Button7->Caption = "Write Register Page";        // надпись на кнопке
                Form1->Button7->Height  = 21;                           // высота кнопки
                Form1->Button7->Width   = 110;                          // ширина кнопки
                Form1->Button7->Left    = 8;                            // расстояние от левого края
                Form1->Button7->Top     = 28;                           // расстояние от верхнего края
                Form1->Button7->Visible = true;                         // делаем кнопку видимой
                Form1->Button8->Caption = "Read Register Page";         // надпись на кнопке
                Form1->Button8->Height  = 21;                           // высота кнопки
                Form1->Button8->Width   = 110;                          // ширина кнопки
                Form1->Button8->Left    = 117;                          // расстояние от левого края
                Form1->Button8->Top     = 28;                           // расстояние от верхнего края
                Form1->Button8->Visible = true;                         // делаем кнопку видимой
                Form1->Button9->Caption = "Write Data Memory";          // надпись на кнопке
                Form1->Button9->Height  = 21;                           // высота кнопки
                Form1->Button9->Width   = 110;                          // ширина кнопки
                Form1->Button9->Left    = 8;                            // расстояние от левого края
                Form1->Button9->Top     = 48;                           // расстояние от верхнего края
                Form1->Button9->Visible = true;                         // делаем кнопку видимой
                Form1->Button10->Caption = "Read Data Memory";          // надпись на кнопке
                Form1->Button10->Height  = 21;                          // высота кнопки
                Form1->Button10->Width   = 110;                         // ширина кнопки
                Form1->Button10->Left    = 117;                         // расстояние от левого края
                Form1->Button10->Top     = 48;                          // расстояние от верхнего края
                Form1->Button10->Visible = true;                        // делаем кнопку видимой
                Form1->Button11->Caption = "Read Factory Page";         // надпись на кнопке
                Form1->Button11->Height  = 21;                          // высота кнопки
                Form1->Button11->Width   = 110;                         // ширина кнопки
                Form1->Button11->Left    = 117;                         // расстояние от левого края
                Form1->Button11->Top     = 68;                          // расстояние от верхнего края
                Form1->Button11->Visible = true;                        // делаем кнопку видимой
              // настраиваем лэйблы
                Form1->Label3->Caption   = "TA1";                       // надпись на метке
                Form1->Label3->Height    = 13;                          // высота метки
                Form1->Label3->Width     = 20;                          // ширина метки
                Form1->Label3->Left      = 247;                         // расстояние от левого края
                Form1->Label3->Top       = 32;                          // расстояние от верхнего края
                Form1->Label3->Visible   = true;                        // делаем метку видимой
                Form1->Label4->Caption   = "TA2";                       // надпись на метке
                Form1->Label4->Height    = 13;                          // высота метки
                Form1->Label4->Width     = 20;                          // ширина метки
                Form1->Label4->Left      = 284;                         // расстояние от левого края
                Form1->Label4->Top       = 32;                          // расстояние от верхнего края
                Form1->Label4->Visible   = true;                        // делаем метку видимой
                Form1->Label5->Caption   = "E/S";                       // надпись на метке
                Form1->Label5->Height    = 13;                          // высота метки
                Form1->Label5->Width     = 20;                          // ширина метки
                Form1->Label5->Left      = 322;                         // расстояние от левого края
                Form1->Label5->Top       = 32;                          // расстояние от верхнего края
                Form1->Label5->Visible   = true;                        // делаем метку видимой
                Form1->Label6->Caption   = "Test";                      // надпись на метке
                Form1->Label6->Height    = 13;                          // высота метки
                Form1->Label6->Width     = 20;                          // ширина метки
                Form1->Label6->Left      = 358;                         // расстояние от левого края
                Form1->Label6->Top       = 32;                          // расстояние от верхнего края
                Form1->Label6->Visible   = true;                        // делаем метку видимой
              // настраиваем эдиты
                Form1->Edit4->Text       = "00";                        // текст в эдите TA1
                Form1->Edit4->Height     = 21;                          // высота метки
                Form1->Edit4->Width      = 22;                          // ширина метки
                Form1->Edit4->Left       = 247;                         // расстояние от левого края
                Form1->Edit4->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit4->Visible    = true;                        // делаем метку видимой
                Form1->Edit5->Text       = "00";                        // текст в эдите TA2
                Form1->Edit5->Height     = 21;                          // высота метки
                Form1->Edit5->Width      = 22;                          // ширина метки
                Form1->Edit5->Left       = 284;                         // расстояние от левого края
                Form1->Edit5->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit5->Visible    = true;                        // делаем метку видимой
                Form1->Edit6->Text       = "00";                        // текст в эдите E/S
                Form1->Edit6->Height     = 21;                          // высота метки
                Form1->Edit6->Width      = 22;                          // ширина метки
                Form1->Edit6->Left       = 322;                         // расстояние от левого края
                Form1->Edit6->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit6->Visible    = true;                        // делаем метку видимой
                Form1->Edit7->Text       = "00";                        // текст в эдите Test
                Form1->Edit7->Height     = 21;                          // высота метки
                Form1->Edit7->Width      = 22;                          // ширина метки
                Form1->Edit7->Left       = 359;                         // расстояние от левого края
                Form1->Edit7->Top        = 48;                          // расстояние от верхнего края
                Form1->Edit7->Visible    = true;                        // делаем метку видимой
              // настраиваем Panel2
                Form1->Panel2->Height           = 610;                  // высота страницы
              // настраиваем PageControl1
                Form1->PageControl1->Height     = 395;                  // высота страницы с формами редактирования
                Form1->PageControl1->Top        = 93;                   // расстояние от верхнего края
                Form1->PageControl1->Visible    = true;                 // делаем страницу видимой
              // настраиваем поля для редактирования и метки на PageControl1
                Form1->Label7->Caption          = "Data Memory:";       // надпись на метке
                Form1->Label7->Top              = 0;                    // расстояние от верхнего края
                Form1->Label7->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit1->Height        = 117;                  // высота RichEdit1
                Form1->RichEdit1->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(1);                                        // готовим RichEdit1
                Form1->Label8->Caption          = "Data Memory:";       // надпись на метке
                Form1->Label8->Top              = 0;                    // расстояние от верхнего края
                Form1->Label8->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit2->Height        = 117;                  // высота RichEdit2
                Form1->RichEdit2->Top           = 16;                   // расстояние от верхнего края
              InitDataOnForm(2);                                        // готовим RichEdit2
                Form1->Label9->Caption          = "Register Page:";     // надпись на метке
                Form1->Label9->Top              = 139;                  // расстояние от верхнего края
                Form1->Label9->Visible          = true;                 // делаем метку видимой
                Form1->RichEdit3->Height        = 70;                   // высота RichEdit3
                Form1->RichEdit3->Top           = 155;                  // расстояние от верхнего края
              InitDataOnForm(3);                                        // готовим RichEdit3
                Form1->Label10->Caption         = "Register Page:";     // надпись на метке
                Form1->Label10->Top             = 139;                  // расстояние от верхнего края
                Form1->Label10->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit4->Height        = 70;                   // высота RichEdit4
                Form1->RichEdit4->Top           = 155;                  // расстояние от верхнего края
              InitDataOnForm(4);                                        // готовим RichEdit4
                Form1->Label11->Caption         = "Factory Page:";      // надпись на метке
                Form1->Label11->Top             = 232;                  // расстояние от верхнего края
                Form1->Label11->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit5->Height        = 25;                   // высота RichEdit5
                Form1->RichEdit5->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(5);                                        // готовим RichEdit5
                Form1->Label12->Caption         = "Factory Page:";      // надпись на метке
                Form1->Label12->Top             = 232;                  // расстояние от верхнего края
                Form1->Label12->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit6->Height        = 25;                   // высота RichEdit6
                Form1->RichEdit6->Top           = 248;                  // расстояние от верхнего края
              InitDataOnForm(6);                                        // готовим RichEdit6
                Form1->Label13->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label13->Top             = 280;                  // расстояние от верхнего края
                Form1->Label13->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit7->Height        = 70;                   // высота RichEdit7
                Form1->RichEdit7->Top           = 296;                  // расстояние от верхнего края
              InitDataOnForm(7);                                        // готовим RichEdit7
                Form1->Label14->Caption         = "Scratchpad:";        // надпись на метке
                Form1->Label14->Top             = 280;                  // расстояние от верхнего края
                Form1->Label14->Visible         = true;                 // делаем метку видимой
                Form1->RichEdit8->Height        = 70;                   // высота RichEdit8
                Form1->RichEdit8->Top           = 296;                  // расстояние от верхнего края
              InitDataOnForm(8);                                        // готовим RichEdit8
                Form1->Label15->Top             = 490;                  // расстояние от верхнего края для метки лога
                Form1->RichEdit9->Top           = 506;                  // расстояние от верхнего края для окна лога
                break;
    default:    break;
  }
  CommonVisible();      // делаем видимыми и подписываем общие элементы формы
}
//---------------------------------------------------------------------------
