PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » SpiderBasic » Программа как CHM-справочник


Программа как CHM-справочник

Сообщений 1 страница 20 из 20

1

На официальном форуме выложил пример, как из html-файлов сделать программу. У нас ведь микробраузер, почему бы не использовать его как просмотрщик html-файлов. И это сработало. При этом работают перекрёстные ссылки внутри кэша без указания пути. Ранее встроенный просмотрщик андроида умел открывать ссылки на рядом лежащие файлы, теперь это запрещается и просмотрщик андроида не видит ни стили, ни картинки ни перекрёстные ссылки на другие страницы. Сначала я собирал CHM и пользовался через "CHM Reader X", сейчас попробовал тоже самое как собственная программа, ведь написание html-файлов тоже затрачиваются труды.

https://i.imgur.com/wG7Buap.png

Несколько примеров использования:

PB_User дополнительная справка для PureBasic

PB.apk - PureBasic - официальная англ. справка 6.04. С англ. фейсом и даже инструкция на англ.
скриншоты для справки PureBasic: Настройки, Поиск
PBru.apk - русская справка PureBasic

AutoIt3.apk
скриншоты : Меню, Настройки, Поиск
AutoIt3ru.apk - русская справка AutoIt3

helpPECMD.apk - интерпретатор скриптов, для LiveCD.

Обновление
Для функционала "поиск по тегам" добавлен функционал автозавершения.
Шрифт программной надстройки чуть увеличен.
Сделаны иконки в меню.

Отредактировано AZJIO (19.02.2024 01:01:30)

+1

2

Решил попробовать сделать масштабирование картинок с помощью слайдера (TrackBarGadget), но не программным языком, а скриптом встроенным в страницу. Не получается. Тут ссылки на примеры.

0

3

Webarion
Перепаковал свою справку и странная вещь... при открытии масштабирование не работает, потом посмотрев пару страниц вдруг заработало и стало работать на всех страницах, даже на тех что не работало. Перезапускаю справку, чтобы определить в какой момент начинает работать и опять не работает, при чём захожу на страницу с картинкой на которой включилось и не работает. Можно сделать это более стабильно? Вещь отличная, вот прям чего хотелось бы первым пунктом в план обновления.

Webarion написал(а):

не совсем понятно

В идеале конечно же хочется масштабирования для контента вебгаджета, но из-за того что это казалось чуть ли не аппаратной зависимостью, я не думал что это будет доступно. Поэтому хотел хотя бы картинки масштабировать используя ползунок, который может задать размер масштабирования.

Нельзя ли объекты "touch-action", "auto" задать в css? Если у меня нестабильно работает, то может на странице должен быть какой-то конкретный объект, чтобы включить масштабирование? Если я поставил в начало кода, то теоретически это должно сработать сразу для всего вебгаджета, поэтому не пойму, как оно может то работать то не работать?

Отредактировано AZJIO (18.03.2024 12:39:48)

0

4

Webarion
Исходник у них у всех одинаковый, разница только в контенте папки data. У меня сейчас идея попробовать повесить этот код на пункт меню. Если это поможет, то применить его в какой то момент при старте проги или оставить на пункте меню, чтобы принудительно помочь. Возможно придётся изучать сам код js проги, чтобы вставить его между созданием гаджета и применении страницы гаджета, или использовать функцию SetGadgetText() а перед ней применить код.

Проверил включить пунктом меню - не помогло. Вставил перед SetGadgetText(), не помогло.

Следующая идея вставить этот код в главную страницу. <- Не помогло.
Заметил после сворачивания проги причём не мгновенно развернуть, а с приличным временем, то разворачивается с поддержкой масштабирования. Совпадение уже 2 раза, а метод кода настолько редко срабатывает что скорее недождёшься пока сработает.

Отредактировано AZJIO (18.03.2024 13:34:57)

0

5

Webarion
там meta[name=viewport] установить атрибуты... В принципе многие мои страницы вручную созданы или по шаблону, я мог бы тупо сделать поиск и замену и вставить нужные атрибуты, то есть в

Код:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

можно вставить

Код:
width=device-width, initial-scale=1.0

и получить

Код:
<meta content="text/html; width=device-width, initial-scale=1.0; charset=UTF-8" http-equiv="Content-Type">

Хотя возможно viewport это какой то другой метаттег
хаха, нагуглил

Код:
<meta name="viewport" content="width=device-width, initial-scale=1.0">.

вау, да там ещё инфа

user-scalable — указывает, может ли пользователь масштабировать страницу жестами. Принимает значение yes или no.

Отредактировано AZJIO (18.03.2024 14:13:11)

0

6

Webarion
По сути я могу пересобрать APK с помощью APK.Tool.GUI.v3.0.2.0, там весь контент, скрипты, папка data. Можно написать скриптик, чтобы непосредственно в коде js программы поменял эти параметры. Тогда будет всё намного проще, чем пытаться кодом их ещё раз исправлять.

Пробовал в скрипте сменить none на auto, не помогло. Пробовал вместо spider_OpenWindow ловить spider_WebGadget, тоже не помогло, ещё и панель пропала. В общем любые эксперименты ни разу не выдали мне масштабирование даже случайным образом. Всё вернул как было.

При масштабировании панель может перестать отвечать на клики, если клик по координатам проверяется.

Ещё в window.css добавлял стили... тоже не работало. А во flat.css не нашёл вебгаджет.

Отредактировано AZJIO (18.03.2024 19:17:59)

0

7

Webarion написал(а):

если кнопкой назад закрыть приложение

Может закрыть окно? Сколько я не делал "закрыть приложение" оно не работало, а закрываю треугольником или круглишком и потом квадратик и крестик "Закрыть все".
Может мне добавить пункт меню "Перезапуск для масштабирования"? Только у меня окно фоном, какое событие использовал для закрыть?
BindEvent + #PB_Event_CloseWindow ?

Ты дал мне гарантированный способ. Сейчас вышел из приложения треугольником и тут же его запустил, и масштабирование работает.

Вот только не понятно нужен ли для этого твой код? Проверил нужен. Итог, твой код и некая манипуляция дают гарантированный желаемый результат.

Опять не работает, только что раз пять проверил 2 справки, всё выгрузил начал с 3-ей и перестало работать и предыдущие две тоже перестали.

Отредактировано AZJIO (18.03.2024 22:11:50)

0

8

Webarion
Тоже попробовал этот код, не понимаю зависимость, только что установленный он сработал на масштабирование. Запустил второй файл и оба перестали работать. Но я успел попробовать что после масштабирования координаты клика совпадают, то есть на какую кнопку интерфейса кликаю та и срабатывает. В этом плане если весь этот созданный интерфейс работает, было бы не плохо если бы эту фичу встроили как флажок в окне компиляции.

0

9

Webarion написал(а):

Посмотрим, будет ли это в релизах.

Всего то годик подождать.

0

10

Webarion
Круто, огромное спасибо.

0

11

[b]Webario
Сергей доброго! Андрей-AZJIO обсуждал с тобой эту тему, но работает только увеличение.. Уменьшение не работает (картинка не влазит в рамки устройства-ширина/высота). Может можно что-то сделать? Хотелось бы чтобы изображение при открытии было по размеру экрана устройства, после уже пальцами или движком уже можно было изменять. Ну а сейчас "картина" такая- изображение при открытии не помещается по размеру экрана устройства, а движок на уменьшение не работает. Буду благодарен если ты может найдешь выход как решить эту проблему. Заранее благодарен Александр

0

12

Webarion
1. Ожидалась проблема, что при масштабировании картинка 200px будет увеличиваться без появления деталей, но вроде пересчитывается оригинал.
2. Именно 10-кратного увеличения будет недостаточно для увеличения схемы с реальным размером 5500 px. Которую даже с реального размера иногда хочется увеличить.
3. Увеличение с текстом.
Я пытался найти движок и он есть, просто всё вместе не работает, то есть над картинкой ползунок, который меняет параметры картинки width="200px" на width="500px" и т.д. и увеличивает картинку не увеличивая описание над картинкой и там можно было бы задать до 5500px или 10000px. В противном случае я предлагал сделать минискриншот размером 200px чтобы он открывал страницу с картинкой допустим 1000px как минимальный размер, на котором линии схемы не будут сливаться с фоном, то есть она начнёт быть читаемой и с этого размера начать масштабировать.
То есть по факту для текущего варианта и делать ничего не надо, кроме как знать html-код, а для предлагаемого мной варианта, ради которого можно нужно применить усилие, найти код, о котором я писал выше, и который мне не удалось скрестить, то по факту моя миссия закончилась.

У меня если не получилось то не убиваю зря время, когда нибудь придёт понимание, Не раз так было. Тем более схемы у меня лежат в отдельной папке и я их открываю в масштабируемом просмотрщике изображений. Не составляет труда свернуть одну программу и развернуть другую. В то время как наполнение справочника графикой по 3 Мб ведёт к заметному увеличению проги, десяток схем и прога с 3-х Мб превращается в 30 Мб. У меня хороший показатель цена/качество, то есть статья 2-5 кб несёт более ценную информацию. То есть размер справочника в 3Мб размером с одну схему содержит выход из всех ситуаций по аппаратуре. Поэтому у меня правильный приоритет, если не получилось ну и ладно, не ту важность она имеет. Масштабирование имело приоритет, попадались телефоны на которых мои настройки шрифта выглядели слишком мелко и каждый начинал с того что пытался масштабировать страницу на увеличение, а мне приходилось оправдываться - не работает.

Отредактировано AZJIO (05.04.2024 00:17:54)

0

13

Webarion написал(а):

Если эти параметры есть масштабирование, не понимаю для чего ползунок? В смартфоне можно масштабировать пальцами, на PC - колесом мыши.

Потому что я не уверен, что браузер распознает что я хочу масштабировать картинку, а не всю страницу.

Webarion написал(а):

Вот только сейчас, мне становится понятно, что нужно масштабирование только картинки а не целой страницы.

Точнее нужно всё, и страницы и картинки отдельно. Просто изначально если браузер не поддерживал масштабирование, то казалось это невозможно, так как это движок не джава скрипта, а взаимодействие браузера с движком операционной системы, которая позволяет ловить жесты мыши. Поэтому если движок взаимодействия с устройством системы не связан то и джава скрипт ничего не сделает, вот так это рассматривалось. Система должна предоставить программисту события, а джава скрипт - движок внутри движка, что он может внутри колбы влиять на внешние события, ручки короки, если только колба имеет внутри себя манипулятор для управления внешними процессами.

Webarion написал(а):

Всё было бы проще, если бы была возможность лично пощупать приложение. Но, я так понимаю, это что-то закрытое, поэтому будем догадываться))

да в шапке темы 6 примеров, куда больше. Если хочется именно пощупать запретный плод )))) то вот оно ссылка1, или онлайн

0

14

Webarion
А я предупреждал что всё есть в текущем топике.
Какую картинку то надо, у меня особых картинок нет. Картинка то ничего не меняет, даже если она там будет она ничем не отличается от обычной картинки png с тегами img. То есть ты сам можешь взять любую картинку как делал это ранее.
Если у меня и есть схемы в другой не в той что ты установил, то они максимально оптимизированы под экран телефона со шрифтом 11 пиксел. То есть я беру любую с хорошим качеством схему и уменьшаю её до размеров, при котором шрифт будет 11 пиксел.
Также я изначально всегда разделял схемы на блоки и никогда не использовал вариант когда огромную схему раскладываешь как карту на столе во весь стол. Я ещё 20 лет назад на компе делал себе в виде книжки, где каждый блок отдельно, да и сама схема таковой является и нет смысла лепить её на одном листе.
Александр просто хочет воткнуть туда свою схему, которая изначально была 32 Мб и 23000 пиксел в ширину, я оптимизировал по своему алгоритму в двух вариантах 1 и 3 Мб, где 1 Мб потеря качества из-за индексированного цвета в градиентных местах (цилиндрических фигурах) ну и размер 5500 пиксел где шрифт стал 11 пиксел. Александр упирает на качество, а потому что сам делал, я на текстовый контент. Каждый волен делать по своему. Но пиксельная плотность такова, что картинку можно увеличивать смело раза в 3 не теряя визуальную красоту, можно номер на табличке какого нибудь аппарата прочитать. Поэтому масштабирование картинке имеет смысл.

Ну лично у меня вещь которую бы я хотел - это увеличить шрифт на страницах и запомнить его. На данный момент писать напрямую в css нет возможности. Можно только писать в файлы в кеше, но переместить css в кеш нет возможности, потому что страница не может получить путь в кеш, да его и нет, так как это виртуальный путь на самом деле база данных. Я в трёх темах пытался решить вопрос, вот одна из них, вот вторая, там подряд три вопроса.

Отредактировано AZJIO (05.04.2024 04:02:09)

0

15

Webarion написал(а):

конвертировать в SVG и работать с этим форматом

там наверно конвертируется как  ворд, куча мусора. Я кстати пытался заняться вручную конвертировать, по факту нарисовать, но сразу не пошло. Надо было задать изначальное разрешение и располагать линии с точными координатами, дабы масштабирование не размывало линии. А если бы я сделал и отправил на печать и если бы это не влезло, то алгоритм приступил бы к масштабированию и размытию линий. Если бы он имел возможность получить растр заданный оригинальным, а иногда бы масштабировал по запросу, то можно было бы заняться. Я 20 лет подстраивался под печать и без масштабирования это было чёткие линии. сейчас вроде можно, но как я понимаю автоматическая просто сделает контраст чёрно-белый и черные куски тупо превратит в рисунки, которые будет раскладывать на белом поле. В общем получится грязно, халтурно, лень этим заниматься, никто за это платить не будет, а работы выше крыши, не несколько месяцев. А завод у которого эти схемы в правильном формате просто не даст. То есть всё есть а я должен это делать заново - неинтересно, а лицензия у них, они скажут "убери" и я буду обязан выполнить - ещё более неинтересно - вклад больших усилий в пустоту.
Там координаты поддерживают дробную часть, небольшое отклонение и всё поплыло, там надо писать код вручную в цифрах, тогда это будет как я ожидал, ну и растр наверно получить до печати, чтобы принтер не пытался масштабировать, если там какие нибудь колонтитулы не вмещаются.

Отредактировано AZJIO (05.04.2024 04:21:54)

0

16

AZJIO
Тоже по работе иногда требуется "оцифровывать" старые схемы-чертежи. Сканирую, вставляю полупрозрачным рисунком в качестве заднего фона и.. перечерчиваю поверх, подбирая толщину линий и делая отдельные слои для обозначений и размеров.

0

17

Webarion
Зацени, как я с помощью html-кода имитирую снимок экрана.
А на Ермаке даже программный интерфейс, когда пользователь боится нажать кнопку, чтобы не сломать аппаратуру, то может "погулять" по веб-интерфейсу имитирующему программное обеспечение. Найди в Ермаке "Дисплей" (в поисковой строке) и понажимай по пунктам меню.

bizdon написал(а):

Тоже по работе иногда требуется "оцифровывать" старые схемы-чертежи.

У меня есть заготовки типа фигуры контактов, линий и прочих элементов схемы, я просто копирую из заготовки и вставляю. Начинаю сначала светлые тона в белый, тёмные в чёрный, потом ручная чистки, а если схема частоиспользуемая, то полностью рисую линии просто выделяя один готовый кусок линии на новое место и двигаю Shift сохраняет горизонтальность при переносе, быстрые Ctrl+V и тяну кусок линии на следующую часть пока вся схема не будет состоять из ровных чётких линий, то есть выделяю линию с белыми участками, чтобы перекрашивать грязь вокруг линий. Также делаю компоновку чтобы не было пустых областей и распутываю, чтобы было меньше пересечений линий, чтобы легче читать. И схема слева-напрово, сверху-вниз, потому что старые схемы рисовались могли по кругу идти снизу вправо потом наверх и влево, ага, кто так делает. Потенциал вверху, корпус/масса внизу, а там могут корпус в любом месте нарисовать, хоть вверх, иногда это выгодно ради симметричности, но не в любом месте.

0

18

Webarion написал(а):

Неплохо потрудился. На сколько я понял, это имитация некоторых панелей в электровозе?
Картинки нашёл. Я просто сначала подумал, что вы с Александром одну тему делаете, а оказывается разные.
У тебя видимо эти приложения подписаны. Хотел посмотреть тело страниц, чтобы оценить размеры картинок, а DevTools Ермака не смог увидеть.

Я по справочнику Андрея делаю редакцию небольшую

0

19

Webarion написал(а):

На сколько я понял, это имитация некоторых панелей в электровозе?

Хотя там не панели а монитор, но имитация панелей тоже есть в других (Ермак имеет минимум инфы, так как новый, а максимум в ВЛ80с, на втором месте ВЛ80ск). Кстати там схемы имеют карту, то есть снизу таблица координат прямоугольника, то есть кликая на схеме какой-то аппарат попадаем на его описание. Делал я эту карту в Gimp, там выделяешь квадрат и даёшь команду добавить область как элемент карты. Потом конечно приходилось подправлять некоторые теги методом "найти-заменить", то есть кликом сделал поправки, а потом ещё для совместимости с телефоном и онлайн-сайтом ещё раз делал поправки. То параметры тега мешают, то ссылки чуть подправить. Там результат многолетней работы, переписываний и исправлений.

0

20

Обновил PB.apk, PBru.apk в первом посте.

Уже не помню были ли косяки в предыдущих версиях, скорее всего были, так как мне пришлось обрабатывать контент скриптами. Точнее на страницах в ссылках имена файлов например dayofyear.html, а в реальности в папке файл DayOfYear.html, при этом в андроиде чувствительность к регистру в имени файлов, из-за чего ссылки не работали и реально юзать справку не получалось, кроме левого списка, там имена в нижнем регистре в папке Reference, поэтому возникало ощущение, что проблем нет. Но стоило кликать ссылки в правом списке, как тут же ничего не открывалось и даже если поправить только эту страницу, то попадаешь в оглавление со списками функций и они опять не работают. Ну и кроме того даже если их поправить, то не будут работать ссылки по тексту и "следующая/предыдущая страница", короче ничего не работало.
Я получил список всех файлов (в реальном регистре), далее сделал копию списка в нижнем регистре, объединил два списка, соединив их в сценарий замены, теперь прога замены в каждом файле искала все имена, ранее полученные в нижнем регистре и заменяла на правильные. Файл reference.html поправил ручками и кроме того сделал такой же файл-сценарий для папок, но он почти ничего не нашёл кроме файла SetFileDate.html, там папка была Date в нижнем регистре. Ну и на этой же странице ссылка на FormatDate() не исправилась (поправил ручками уже после компиляции). В общем всё не юзал, но применил скрипты, которые в теории должны исправить все косяки и проверка нескольких страниц не выявила ни одной проблемы.

Смежная тема на оф.форуме
APK-файл можно перепаковать, с помощью APK.Tool.GUI.v3.0.2.0, в плане того, что подменить стилевой файл style.css (мне уже лень делать 3 файла с разными стилями, одна ошибка и заново по 2 минуты перепаковываешь каждый файл, напрягает). В общем извлечь обычный CHM-файл и подменить ещё файлы copy.gif и link.png

Сейчас проверил ссылку на копирование с рисунком copy.gif можно вообще удалить, она не работает.

Отредактировано AZJIO (29.10.2024 15:10:27)

0


Вы здесь » PureBasic - форум » SpiderBasic » Программа как CHM-справочник