Резюме:
Я начинаю создавать инструмент для создания / редактирования карт изображений HTML или «горячих точек» на изображении, используя Delphi 7. Концепция приложения ясна и описана ниже. Я делал подобные проекты раньше, и я уверен, что смогу сделать это с любым подходом, который я выберу сам. Мне нужна помощь в поиске наилучшего подхода к хранению карт изображений в памяти.
Карта изображения может выглядеть так:
<MAP NAME="someImageMap">
<AREA SHAPE="RECT" COORDS="10,28,54,51" HREF="some_page.htm">
<AREA SHAPE="RECT" COORDS="54,28,111,50" HREF="some_other_page.htm">
<AREA SHAPE="RECT" COORDS="111,28,199,49" HREF="another_example.htm">
</MAP>
<IMG border=0 src="../images/SomeImage.png" width=571 height =451
isMap useMap=#someImageMap />
AREA
- это область в изображении с заданной формой и координатами для размещения невидимой гиперссылки. Их также называют Hotspots
.
Фон
У меня есть огромный файл справки в формате HTML, который раньше был в HelpScribble программном обеспечении, но теперь мы используем WinCHM . В HelpScribble был инструмент под названием SHGEditor , который сделал все это для меня. Но WinCHM не имеет концепции карт изображений, и они во всем коде. Поэтому вместо того, чтобы пытаться найти инструмент для этого (что, конечно, является легким выходом из этого), я собираюсь сделать один из своих.
Изображение:
Проблема:
Путаница начинается с решения, где временно хранить первичные данные для Hotspot
областей в памяти ...
- прямо в коде HTML?
- В TList?
- В TStringList?
- В массиве?
- В TListView, где я отображаю список горячих точек?
Это основной вопрос, который я задаю.
У каждого, я думаю, есть свои взлеты и падения. Но все это отбрасывается, когда я думаю о редакторе HTML. Когда изменения выполняются на одной из трех вкладок редактирования («Изображение», «HTML» или «Список горячих точек»), необходимо каким-то образом синхронизировать эти изменения с двумя другими редакторами. Так что, если на изображении нарисована новая точка доступа, конечно, я могу без проблем перевести ее в HTML. Но как насчет использования чистого HTML-кода в качестве основного источника? Я собираюсь собирать / разбирать его в любом случае, но я беспокоюсь о производительности с этим. Но опять же, я могу создать хороший внутренний класс, чтобы все тоже было. Что считать основным?
Вывод:
Так что все сводится к тому, следует ли мне хранить первичные данные в источнике HTML, элементах представления списка, пользовательском классе списка (THotspots) или где?
Любые советы, хитрости или предложения приветствуются.
PS:
На самом деле я часто задаю длинные вопросы, извините!