Методические указания для лабораторных работ по дисциплине: «Проектирование информационных систем», страница 7

B1->Default=1;            //при нажатии кнопки ENTER актив-ся кнопка "Пуск"

AnsiString path="";              // инициализация символьной переменной

DLBox1->FileList=FLBox1;         // выбор компонента вывода списка файлов

path=DLBox1->Directory;          // присвоение перем-й пути текущего каталога

path+="/data";                   // добавл-ие в перем-ю пути каталога "data"

DLBox1->Directory=path;          // выбор директории по умолчанию

CB1->Checked=1;                  // отметить элемент " Использовать маску"

E3->Text = "*.txt";         // вывод маски файла по умолчанию в поле ввода

FLBox1->Mask="*.txt";            // активировать использование маски файлов

FLBox1->ItemIndex=0;             // переход на первый файл в списке

Form1->Height=430;               // высота окна = 430 пикселей

RE1->Visible=0;                  // скрыть компоненту вывода текста

SG1->Color=clInfoBk;             // изменение цвета таблицы

SG1->ColCount=1;                 // количество столбцов в таблице = 1

SG1->ColCount=2;                 // количество столбцов в таблице вывода

SG1->RowCount=1;                 // начальное количество строк

SG1->Cells[0][0]="Путь к файлу"; // название первого столбца

SG1->Cells[1][0]="Найдено";      // название второго столбца

}

5. Далее мы вводим следующий код в редакторе кода. Никаких событий создавать не нужно. Вводить надо сразу после закрытия события OnCreate. Это функции изменения размера окна и нахождения максимального.

double StPos=0, stPos=0, tLen=0; // инициализация глобальных переменных

TSearchTypes Options;            // инициализация параметров поиска

void resi(bool d)  // функция отображения компоненты вывода текста

  {

   if(d==0)   // если значение d = 0

     {

      Form1->Height=430;      // высота окна = 430 пикселей

      Form1->RE1->Visible=0;  // скрыть компоненту вывода текста

      Form1->RE1->Clear();    // очистить компоненту вывода текста

     }

   if(d==1)   // если значение d = 1

     {

      Form1->Height=800;       // высота окна = 800 пикселей

      Form1->RE1->Visible=1;   // отобразить компоненту вывода текста

     }

   }

int mine(int m)  // функция нахождения максимального (прим-ся для сорт-ки)

{

int  mini=m, i; // инициализация переменных

for(i=m;i < Form1->SG1->RowCount; i++)       // цикл

  {

   if(StrToFloat(Form1->SG1->Cells[1][i]) >

   StrToFloat(Form1->SG1->Cells[1][mini]))

mini=i;

  }

return mini;   // возвращает максимальное значение

}

6. Следующим действием является создание события OnClick для компонента B1. Для этого нужно выделить компонент B1 щелчком мыши и в Инспекторе объектов дважды щелкнуть по событию OnClick. Открывается редактор кода с созданным событием OnClick. Вводим следующий код:

void __fastcall TForm1::B1Click(TObject *Sender) //<- вводитьненужно!!!

{                             // событие - клик по кнопке "Пуск"

long int kol=FLBox1->Count;  // ин-ияперем-ой

if(E1->Text!="" && kol>=1)   // если компонента "Условие поиска" не пустое

{

  long int S=0, col=1, FA=0, sLen=0;    // ин-ияперем-ых

  AnsiString fiName="";                  // ин-ияперем-ой

int i;                                  // ин-ия перем-ой

    resi(0);  // вызов функции resi с параметром d = 0 (скрытие текста)

    CG1->MaxValue=kol-1;  // установка макс-го значения прогресса

    SG1->RowCount=1;      // начальное количество строк в таблице

    SG1->Cells[0][0]="";  // очистка первого столбца таблицы

    SG1->Cells[1][0]="";  // очистка второго столбца таблицы

    B1->Caption="Процесс"; // изменение заголовка кнопки "Пуск"