FreeBasic
Главная
Вход
Регистрация
Четверг, 05.12.2024, 18:51Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Возрождение проекта "Решатель сканвордов"
salexeiyДата: Четверг, 30.11.2017, 22:21 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 72
Репутация: 2
Статус: Offline
Дело было в далёком 2003 году, когда мы с соседом программили на делфи. С тех пор много чего произошло, язык забылся, исходников вообще не осталось, а из программ выжила только с названием "Решатель сканвордов". Программка представляет собой запакованный PE-компактом экзешник с текстовым файлом (типа БД) слов и определений, а также манифест для красивости. Есть полноценная справка в формате CHM.
Плюсы: компактная (всего 206 килобайт), быстро работает.
Минусы: т.к. база данных представляет собой обычный текстовый файл (слегка модернизированный), то при большом объёме начинаются тормоза при поиске, т.к. индекс отсутствует напрочь. Ну и нет возможности удалять запись, только редактировать. Почему так - сам не знаю, т.к. не помню. Ещё косяк с тем, что при редактировании слова/определения, невозможно очистить поля ввода.

Как всё работало?! Берём кроссворд, читаем определение вопроса, клавишами +/- увеличиваем/уменьшаем длину слова (такие прямоугольники), вводим буквы (маска), которые есть в кроссворде (причём вводить можно как на русской, так и на английской раскладке, всё равно будут вводиться русские символы), жмём "Найти" и выбираем из списка подходящие слова. Что делать дальше? Либо решаем дальше, либо заносим слово/определение в базу (закладка "Добавление и изменение"), либо редактируем (кнопка "Редактировать"). Маска слова поддерживает удаление символов по клавишам Del и BS, а так же можно перемещать указатель (закрашенный прямоугольник) клавишами влево/вправо.

И вот на днях решил возродить проект, а заодно изучить FB. Поначалу думал делать файлы ресурсов в FbEdit, но показалось сложновато (тема про TabStrip). Решил пощупать Win9. Один огромный минус - нет редактора ресурсов под эту библиотеку, пришлось всё подгонять на глаз, что занимает 90% времени.

На данный момент сделал только оболочку + прикрутил манифест для всё той же красивости. Старался скопировать полностью программу по внешнему виду, но в итоге увеличил высоту, чтобы список был побольше.

Пишу в посейдоне, компилятор х32 версии 1.0.6 от 20.11.2017.

Какие пока непонятки?!
  • Как отловить события мыши по наведению на гаджеты для подсказок в строке статуса. Создал тему на форуме.
  • Как реализовать маску слова (совсем забыл, как мы это делали).
  • Какую базу данных использовать. Пока смотрю в сторону cheetahdatabase, но не понял, как узнать количество записей в базе. SQL даже не рассматриваю по причинам... Да по множеству причин.


Дальше посмотрим. На днях прикручу диалоговое окошко "О программе", которое вызывается по кнопке "?". Ах да, кнопка "!" очищает маску слова.

Ну и картинки. Вот так выглядит программа на делфи:





А вот так на FB и Win9:





Здесь я добавил две кнопки, Очистить (будет очищать поля ввода) и Удалить (удаляет запись из БД).
 
haavДата: Пятница, 01.12.2017, 16:54 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Я не изучал cheetahdatabase , так лишь погонял примеры. Ты можешь спросить на оф. сайте , Paul там часто бывает (он автор проекта WinFBE)

А вообще сколько слов у тебя в словаре? Я где-то 7 лет назад писал игру "БАЛДА" , так у меня в словаре было ~51600 слов. Все хранилось в обычном файле. В программе не использовалось никаких баз данных , связанные списки , да простая примитивная логика.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
salexeiyДата: Пятница, 01.12.2017, 18:48 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 72
Репутация: 2
Статус: Offline
Всего 522 слова. Знаю, мало, но до наполнения руки не доходили. Насчёт БД. Мне просто не интересно работать с обычным текстовым файлом, хочется попробовать сделать именно с БД. По поводу cheetahdatabase - примеры посмотрел, вроде всё просто. На форуме спрошу про количество записей.

Маленькое обновление. Подсказки в строке статуса заработали (огромное спасибо Стасу!!!). На второй закладке сделал обрамление в виде группы вокруг кнопок, чтобы визуально отделить от полей ввода. Кнопка "Очистить" переместилась вниз над кнопкой "Удалить", так же кнопка "Очистить" тоже работает, т.е. очищает поля ввода.
При нажатии на кнопки Добавить, Редактировать и Удалить делается проверка на заполненность полей. Если хоть одно поле пустое, выскакивает окошко с предупреждением.
 
  • Страница 1 из 1
  • 1
Поиск: