Практика
И
так, приступим к основной задаче. Для работы
нам понадобиться следующее:
1)
бесплатная IDE среда разработки Turbo Delphi
Lite (портабельная версия на флешке,
www.andyaska.
com/?act=download&mode=detail&id=34) ;
2)
база данных расшифровок (набил базу со скана
книги “Нумерология”, автора не помню:)).
Ввиду ограниченности места в журнале рассмот-
рим только основные моменты реализации. Прежде
всего, запустим IDE среду Delphi и создадим пустой
проект с формой.
Далее, поместим на форму следующие компонен-
ты
(рис. 2):
TMaskEdit (для ввода даты рождения),
один Tlmage (в качестве фоновой картинки-формы) и
несколько Tlmage (имитирующих кнопки и отвечаю-
щие за сервисные функции по распечатке отчета, вы-
бора параметров шрифта отображения), ТМето (ок-
но для вывода результатов расчета), TClientDataSet
(компонент из палитры DataAccess):
На форме проекта в Tlmage фона подгрузим рас-
тровую картинку в формате (Bitmap) *.ВМР. Она бу-
дет задавать внешний вид программы. Далее, вос-
пользуемся свойством формы TransparentColor, что
даст нам возможность оконтурить форму по грани-
цам картинки-фона.
“А для
чего
нам
понадобился
компонент TClient-
DataSet.
..?”, - спросите Вы. Все просто! С его помо-
щью мы будем производить добавление записи в на-
шу базу на начальном этапе.
Кроме того, использование ClientDataSet позволя-
ет избавиться от необходимости
каждый
раз уста-
навливать BDE на машину,
где будет эксплуатиро-
ваться база и соответственно реализовать автоном-
ное приложение.
А,
используя
методы
компонента
“SaveFile,
LoadFromFile” мы получаем в будущем возможность
экспорта-импорта нашей базы данных как в формате
CSV
(бинарном),
так
и
широко
распространенном
сейчас XML, что обеспечивает независимость ПО ф
от источника данных, и соответственно придает
универсальность оболочке утилиты.
Управляем базой.
Алгоритм выборки
К
ак правило, для ускорения работы с базой выби-
рают не все данные, а только те записи, что удов-
летворяют заданным пользователем критериям. Весь
смысл ведь нашей затеи - именно удобный поиск.
..
Эти
критерии
обеспечить
достаточно
просто,
ведь существует так называемый фильтр, парамет-
ры которого можно задавать прямо в вышеупомя-
нутом
компоненте
TClientDataSet
через
свойство
FieldValues. Выборка и обработка из базы-бинарни-
ка будет выглядеть следующим образом:
{ ОПРЕДЕЛЕНИЕ ГОДА ПО КИТАЙСКОМУ
КАЛЕНДАРЮ }
пагу[0]:=’обезьяны’; пагу[3]:=’свиньи’;
nazv[6]:=’Tnrpa’; nazv[9]:=’3Men’;
пагу[1]:=’курицы’; nazv[4]:=’Mbimn’; пал/[7]:=’зай-
ца’; пагу[10]:=’лошади’;
nazv[2]:=’co6aKn’; nazv[5]:=’коровы’; nazv[8]“ ’дра-
кона’; пагу[11]:=’овцы’;
s1 :=maskedit1 .text[1 J+maskedit1 .text[2]+maskedit1 .t
ext[4]+maskedit1 .text[5]+maskedit1 .text[7]+masked-
it1 .text[8]+maskedit1 .text[9]+maskedit1 .text[10];
cih:=maskedit1 .text[ 1 ]+maskedit1 .text[2];
mes:=maskedit1 .text[4]+maskedit1 .text[5];
gr:=maskedit1 .text[7]+maskedit1 .-
text[8]+maskedit1 .text[9]+maskedit1 .text[10];
grh:=strtoint (gr);
//if (grh<1563) then maskeditl .Hint:= ‘Для года
меньшего 1563-го цвет года не вычисляется’;
zv:=10* ((grh-1563-trunc ((grh-1564)/60) *60)/10-
trunc ((grh-1563-trunc ((grh-1564)/60) *60)/10));
zw:=trunc (zv);
memo1.Lines.Add (‘Название: год
‘+nazv[grh-12*trunc (grh/12) ]);
if (zw=1) or (zw=2) then
if (grh>=1563) then memol .Lines.Add
(‘Цвет года: ‘+’синий’);
if (zw=3) or (zw=4) then
if (grh>=1563) then memol .Lines.Add
(‘Цвет года: ‘+’красный’);
if (zw=5) or (zw=6) then
if (grh>=1563) then memol .Lines.Add
(‘Цвет года: ‘+’желтый’);
if (zw=7) or (zw=8) then
if (grh>=1563) then memol .Lines.Add
(‘Цвет года: ‘+’белый’);
if (zw<>1) and (zw<>2) and (zw<>3) and
(zw<>4) and (zw<>5) and (zw<>6) and
(zw<>7) and (zw<>8) then
if (grh>=1563) then memol .Lines.Add
предыдущая страница 54 Компьютер 2012 08 читать онлайн следующая страница 56 Компьютер 2012 08 читать онлайн Домой Выключить/включить текст