Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Задание№2




1. Отройте новое приложение.

2. Откройте окно модуля данных. Поместите на него компоненты TQuery, TDataSourse. Присвойте модулю данных имя DMod.

3. Установите в свойстве Name компонента TQuery значение CountryQuery.

4. Установите в свойстве DataSet компонента TDataSource значение CountryQuery, в свойстве Name –значение CountrySource.

 
 



5. В основную форму поместите компонент TPanel. На панели разместите пять кнопок компонента TBitBtn с соответствующими именами:bbLoad, bbLoad2, bbpickA, bbPickB, bbPickC и подписями: Load, Load2, A, B, C. Чтобы поместить на кнопку графическое изображение надо воспользоваться свойством Glyph, щелкнуть в конце строки свойства и открыть окно Picture Editor, затем в окне редактора нажать кнопку Load, загрузить нужное изображение из папки Borland Shared\Images\Buttons.

6. Ниже разместите объект TDBGRid и объект TOpenDialog.

7. В свойстве DataSource объекта TDBGrid выберите из списка значение DMod->CountryQuery.

8. Для объекта TOpenDialog в свойстве Filter с помощью редактора введите имя фильтра SQL и сам фильтр - *.txt (или любое расширение, которое вы будете использовать для текстовых файлов с инструкцией SQL) В результате в списке будут отображаться только файлы с расширением *.txt.

9. С помощью программы Блокнот создайте два текстовых файла с расширением.txt:

Select * from country where Name like '%ia';

 

Select * from country where name like '%c%';

 

10. В модуле данных в редакторе кода поместите методы RunQuery RunQuery2, позволяющие загрузить файлы с диска.

void TDMod::RunQuery(TStringList *StringList)

{

CountryQuery->Close();

CountryQuery->SQL = StringList;

CountryQuery->Open();

}

 

void TDMod::RunQuery2(AnsiString S)

{

CountryQuery->Close();

CountryQuery->SQL->Clear();

CountryQuery->SQL->LoadFromFile(S);

CountryQuery->Open();

}

Функция LoadFromFile позволяет с помощью одной команды загрузить весь текстовый файл в процессе выполнения программы.

11. Также в модуле данных поместите метод выбора второй строки запроса в зависимости от выбранной кнопки: А, В, С.

void TDMod::SelectItems(AnsiString S)

{

CountryQuery->Close();

CountryQuery->SQL->Clear();

CountryQuery->SQL->Add("Select * from Country");

 

switch (S[1])

{

case 'A':

CountryQuery->SQL->Add("where name like 'A%'");

break;

 

case 'B':

CountryQuery->SQL->Add("where name like 'B%'");

break;

 

case 'C':

CountryQuery->SQL->Add("where name like 'C%'");

break;

}

CountryQuery->Open();

}

//******

Поместите объявление функций в заголовочный файл в раздел public

void SelectItems(AnsiString S);

void RunQuery(TStringList *StringList);

void RunQuery2(AnsiString S);

 

12. Создайте процедуры обработки события нажатия кнопок. Для кнопки bbLoad:

void __fastcall TForm1::bbLoadClick(TObject *Sender)

{

if (OpenDialog1->Execute())

{

TStringList *StringList = new TStringList();

StringList->LoadFromFile(OpenDialog1->FileName);

DMod->RunQuery(StringList);

StringList->Free();

}

}

Для кнопки bbLoad2:

void __fastcall TForm1::bbLoad2Click(TObject *Sender)

{

if (OpenDialog1->Execute())

DMod->RunQuery2(OpenDialog1->FileName);

}

Для трех кнопок: A, B, C создайте одну и ту же процедуру нажатия кнопки:

void __fastcall TForm1::bbPickAClick(TObject *Sender)

{

TComponent *C = (TComponent *)Sender;

switch (C->Tag)

{

case 65:

DMod->SelectItems("A");

break;

case 66:

DMod->SelectItems("B");

break;

case 67:

DMod->SelectItems("C");

break;

}

}

13. Запустите приложение. Убедитесь в работоспособности приложения.

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 456 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Настоящая ответственность бывает только личной. © Фазиль Искандер
==> читать все изречения...

2374 - | 2099 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.