Книги онлайн » Книги » Программирование » Интернет решения от доктора Боба - Swart Bob

Интернет решения от доктора Боба - Swart Bob

Читать онлайн книгу «Интернет решения от доктора Боба».
Интернет решения от доктора Боба - Swart Bob
Название: Интернет решения от доктора Боба
Автор: Swart Bob
ISBN: Нет данных
Год: Не указан
Читать онлайн

Интернет решения от доктора Боба - Swart Bob — читать книгу онлайн

Страница 17 из 32

Настройте размер и шрифт текста, включите тёмную тему для удобного чтения. Переходить между страницами можно стрелками внизу или сочетанием Ctrl + ← / →.

Страница 17 из 32

<AREA SHAPE="rect" COORDS="76,0,100,25" href="#">

<AREA SHAPE="rect" COORDS="101,0,125,25"href="#">

</MAP>

Таким образом, мы можем свой навигатор по базе данных. Для этого нам необходимо иметь три картинки: одна для первой записи (клавиши первая и предыдущая запрещены), одна для последней записи (клавиши следующая и последняя запись запрещены) и одна для записей в середине таблицы (все клавиши разрешены). В каждой ситуации я назначаю ссылку для одной из клавиш на другую страницу. Это обеспечивает сильную обратную связь между нажатиями на клавиши. Конечно, клавиши не могут быть надавлены, но мы имеем очень быстрый ответ по сравнению с Java или CGI-приложениями (все что происходит это только прыжок на другую страницу).

NAVIGATL.GIF:

NAVIGAT.GIF:

NAVIGATR.GIF:

Вот код на Дельфи, который генерирует корректный образ и карту для каждой записи:

if (RecNr = 1) then { first record }

begin

writeln(f,'<IMG SRC="../images/navigatl.gif" '+

'ALIGN=RIGHT USEMAP="#map" BORDER="0">');

writeln(f,'<MAP NAME="map">');

writeln(f,'<AREA SHAPE="rect" COORDS="51,0,75,25" href="#"text_code"> PageNr(2)+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="76,0,100,25" href="#"text_code"> LastPage+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="101,0,125,25"href="#"text_code"> PageNr(RecNr)+'">');

end

else

if (RecNr = RecordCount) then { last record }

begin

writeln(f,'<IMG SRC="../images/navigatr.gif" '+

'ALIGN=RIGHT USEMAP="#map" BORDER="0">');

writeln(f,'<MAP NAME="map">');

writeln(f,'<AREA SHAPE="rect" COORDS="0,0,25,25" href="#"text_code"> FirstPage+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="26,0,50,25" href="#"text_code"> PageNr(RecNr-1)+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="101,0,125,25"href="#"text_code"> PageNr(RecNr)+'">');

end

else { middle record }

begin

writeln(f,'<IMG SRC="../images/navigat.gif" '+

'ALIGN=RIGHT USEMAP="#map" BORDER="0">');

writeln(f,'<MAP NAME="map">');

writeln(f,'<AREA SHAPE="rect" COORDS="0,0,25,25" href="#"text_code"> FirstPage+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="26,0,50,25" href="#"text_code"> PageNr(RecNr-1)+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="51,0,75,25" href="#"text_code"> PageNr(RecNr+1)+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="76,0,100,25" href="#"text_code"> LastPage+'">');

writeln(f,'<AREA SHAPE="rect" COORDS="101,0,125,25"href="#"text_code"> PageNr(RecNr)+'">');

end;

writeln(f,'</MAP>');

Все три образа панели навигации хранятся в общем каталоге "../images" и дают мне шанс конвертировать множество таблиц в одно и тоже время для всех точек только с помощью этих трех образов. В действительности, в нашей локальной интрасети мы имеем порядка 23 таблиц преобразованных в 200 HTML страниц, и все они используют эти самые три образа.

2.1.7. Первый результат

После конвертирования базы BIOLIFE.DB, которая содержит много текстовых данных в мемо поле и одно поле, которое мы игнорируем (image field), мы получили следующий результат (обратите внимание на заголовок, который показывает запись 1 из 28):

Избранные книги

↑