Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Файл настроек.
mishemДата: Вс, 14 Апреля 2013, 07:58 | Сообщение # 1
Эксперт форума
Пришла мне такая мысль, сделать файл настроек из базы данных. Ну и как всегда аппетит начинает расти.
Мысль такая...
У каждого объекта свое оригинальное имя. Как мы знаем, в глобальной переменной [Self] как раз и находится это имя. Вроде бы все просто, присваиваешь объекту имя к примеру Booton , присваиваешь переменную [Booton] создаешь подпрограмму и одну команду для каждого объекта. Примерно так
If "[[Self]]" "=" ""
...
Но столкнулся когда мне нужна переменная плагина, а она такая, что объекту нельзя присвоить ее имя. 3DTitles. Вот тут и начались извращения. Ну соответственно и мозг начал работать в разных направлениях.:)
Ну а чем больше он работае, тем больше направлений.

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

С этим понятно, теперь подпрограмма, для каждого объекта может быть одинаковый скрипт, но разные подпрограммы. Добавляем в базу имя подпрограммы, а в скрипте вставляем переменную в которую будет отправляться это имя. Удобно? Думаю что да. Хотя кто то может сейчас и не понять о чем я. :)

Несколько раз поднимали вопрос о защите программы. Тоесть сделать комерческую и как ее защитить от взлома. Тоже мысль пришла. :)
В плагине NeoDouble есть команда npEjecutarAccion которая позволяет выполнить команды НБ из внешнего файла. Пишем программу, тестим, а после в базу закидываем файлы со скриптом для каждого, или для некоторых объектов. А в объектах вставляем команду из плагина. Получается что то типа функции, только она не внешняя, не вложенная, а находится в файле настроек. Всегда можно скрипт переписать, и заменить файл(ы).

Короче возможностей море.

Создавать такой файл каждый раз проблематично, решил сделать программу что бы она создавала таблицы(разделы) и поля(ключ=значения). Где ключ может быть как имя объекта, так имя переменной. А значение не одно как в файле ini или в реестре, а сразу несколько для объекта\переменной.

К примеру нам нужно менять значение переменной, но в какой то момент установить значение по умолчанию. Вот и пишем в базе : Имя объекта;Имя переменной;Значение переменной по умолчанию;Ширина;Высота;Цвет;Шрифт;Имена файлов;Видимость;Активность;Имя подпрограммы.....

Как то так.
Кто что думает по этому вопросу?


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеПришла мне такая мысль, сделать файл настроек из базы данных. Ну и как всегда аппетит начинает расти.
Мысль такая...
У каждого объекта свое оригинальное имя. Как мы знаем, в глобальной переменной [Self] как раз и находится это имя. Вроде бы все просто, присваиваешь объекту имя к примеру Booton , присваиваешь переменную [Booton] создаешь подпрограмму и одну команду для каждого объекта. Примерно так
If "[[Self]]" "=" ""
...
Но столкнулся когда мне нужна переменная плагина, а она такая, что объекту нельзя присвоить ее имя. 3DTitles. Вот тут и начались извращения. Ну соответственно и мозг начал работать в разных направлениях.:)
Ну а чем больше он работае, тем больше направлений.

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

С этим понятно, теперь подпрограмма, для каждого объекта может быть одинаковый скрипт, но разные подпрограммы. Добавляем в базу имя подпрограммы, а в скрипте вставляем переменную в которую будет отправляться это имя. Удобно? Думаю что да. Хотя кто то может сейчас и не понять о чем я. :)

Несколько раз поднимали вопрос о защите программы. Тоесть сделать комерческую и как ее защитить от взлома. Тоже мысль пришла. :)
В плагине NeoDouble есть команда npEjecutarAccion которая позволяет выполнить команды НБ из внешнего файла. Пишем программу, тестим, а после в базу закидываем файлы со скриптом для каждого, или для некоторых объектов. А в объектах вставляем команду из плагина. Получается что то типа функции, только она не внешняя, не вложенная, а находится в файле настроек. Всегда можно скрипт переписать, и заменить файл(ы).

Короче возможностей море.

Создавать такой файл каждый раз проблематично, решил сделать программу что бы она создавала таблицы(разделы) и поля(ключ=значения). Где ключ может быть как имя объекта, так имя переменной. А значение не одно как в файле ini или в реестре, а сразу несколько для объекта\переменной.

К примеру нам нужно менять значение переменной, но в какой то момент установить значение по умолчанию. Вот и пишем в базе : Имя объекта;Имя переменной;Значение переменной по умолчанию;Ширина;Высота;Цвет;Шрифт;Имена файлов;Видимость;Активность;Имя подпрограммы.....

Как то так.
Кто что думает по этому вопросу?

Автор - mishem
Дата добавления - 14 Апреля 2013 в 07:58
СергейДата: Вс, 14 Апреля 2013, 21:39 | Сообщение # 2
Необукер
головняков много будет...
не спрашивай, не помню. Использовал я такой метод, потом отказался. Может помнишь тему создовал, для каждой переменной своя формула расчета. По сути тоже самое, но в процессе разработки стали появляться подводные камни. Короче, отказался от использования бд.

Добавлено (14 Апреля 2013, 21:39)
---------------------------------------------
Это я написал про использования бд, как хранения функций и подпрограмм. А хранения значений каких либо переменных, не знаю есть ли смысл?! Если только сложных проектов, а так проект с двумя кнопками и бд настроек :D
Тут от проекта зависит. Кстати, если бд повредится (не обязательно по вине юзера), тогда проект не запустится?

 
Сообщениеголовняков много будет...
не спрашивай, не помню. Использовал я такой метод, потом отказался. Может помнишь тему создовал, для каждой переменной своя формула расчета. По сути тоже самое, но в процессе разработки стали появляться подводные камни. Короче, отказался от использования бд.

Добавлено (14 Апреля 2013, 21:39)
---------------------------------------------
Это я написал про использования бд, как хранения функций и подпрограмм. А хранения значений каких либо переменных, не знаю есть ли смысл?! Если только сложных проектов, а так проект с двумя кнопками и бд настроек :D
Тут от проекта зависит. Кстати, если бд повредится (не обязательно по вине юзера), тогда проект не запустится?


Автор - Сергей
Дата добавления - 14 Апреля 2013 в 21:39
mishemДата: Вс, 14 Апреля 2013, 23:36 | Сообщение # 3
Эксперт форума
Цитата (Сергей)
Если только сложных проектов,

Ну конечно сложных, или для хранения функций и подпрограм для того что бы их можно было иметь возможность изменить.
Цитата (Сергей)
как хранения функций и подпрограмм.

Я пока не вижу в чем может быть проблема, посмотрим.
Цитата (Сергей)
Кстати, если бд повредится

Повредится может любой файл. Но я пока не встречал нигде что бы отказались от баз по этой причине. А многие конторы работают с базами в которых на много больше данных и ценность эти данные имеют побольше чем нежели файл настроек.

У меня это все в теории пока. Если доделаю, выложу.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата (Сергей)
Если только сложных проектов,

Ну конечно сложных, или для хранения функций и подпрограм для того что бы их можно было иметь возможность изменить.
Цитата (Сергей)
как хранения функций и подпрограмм.

Я пока не вижу в чем может быть проблема, посмотрим.
Цитата (Сергей)
Кстати, если бд повредится

Повредится может любой файл. Но я пока не встречал нигде что бы отказались от баз по этой причине. А многие конторы работают с базами в которых на много больше данных и ценность эти данные имеют побольше чем нежели файл настроек.

У меня это все в теории пока. Если доделаю, выложу.

Автор - mishem
Дата добавления - 14 Апреля 2013 в 23:36
ВадимДата: Чт, 18 Апреля 2013, 14:11 | Сообщение # 4
Генератор идей
Цитата (mishem)
для хранения функций и подпрограмм для того что бы их можно было иметь возможность изменить
Если человек в состоянии изменить функцию или подпрограмму, то, скорее всего, это сам автор программы, а ему вполне можно изменения внести в самом проекте и перекомпилировать его.
Цитата (mishem)
Кто что думает по этому вопросу?
Я пока не понимаю, какие проблемы поможет решить именно такой подход. В чем его преимущества перед другими способами. Однако, думаю, что хранить настройки (включая картинки) в базе данных - вполне себе удобное решение. Можно в этом случае обходиться без реестра. В общем, пример на форуме явно не помешает!


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата (mishem)
для хранения функций и подпрограмм для того что бы их можно было иметь возможность изменить
Если человек в состоянии изменить функцию или подпрограмму, то, скорее всего, это сам автор программы, а ему вполне можно изменения внести в самом проекте и перекомпилировать его.
Цитата (mishem)
Кто что думает по этому вопросу?
Я пока не понимаю, какие проблемы поможет решить именно такой подход. В чем его преимущества перед другими способами. Однако, думаю, что хранить настройки (включая картинки) в базе данных - вполне себе удобное решение. Можно в этом случае обходиться без реестра. В общем, пример на форуме явно не помешает!

Автор - Вадим
Дата добавления - 18 Апреля 2013 в 14:11
mishemДата: Пт, 19 Апреля 2013, 00:09 | Сообщение # 5
Эксперт форума
Цитата (Вадим)
а ему вполне можно изменения внести в самом проекте и перекомпилировать его.

К примеру ты создаешь триальную программу с урезанным функционалом. Ну например твоя программа при поиске выдает не все значения, а три. Показывает не весь список плагинов, а 10-50... В базе у тебя функция, или подпрограмма которая накладывает эти ограничения. Тебе заплатили за программу, и теперь вместо того что бы скачивать весь дистрибутив, ты меняешь текстовый файл в базе так же как обновляешь базу. И программа становится полностью функциональной. Это как пример. ;) Не надо качать всю базу заново, просто меняешь текстовые файлы, в любое время когда тебе это надо.

Цитата (Вадим)
Я пока не понимаю, какие проблемы поможет решить именно такой подход.

Очень долго расписывать.
К примеру кнопка по названием Booton1.
Переменная заголовка [Booton1_Title]
Переменные размеров [Booton1_X], [Booton1_Y]
ну и т.д. Цвет, рамка, путь к картинкам...
Все это нужно хранить в реестре, в ini, или в самой программе. Сколько строк? А если объектов 50-100.
Плюс значения по умолчанию.
Теперь предположим нам надо получить, записать значения. Для каждого объекта придется писать свой код. Ну с этим просто столкнутся надо. Для организации поиска придется искать каждую переменную.
В базе мы первое поле пишем с названием объекта. А дальше поля Имя переменной, Значение переменной, Значение по умолчанию, Цвет объекта, стиль, путь к рисунку1, путь к рисунку2..... На сколько фантазии хватит. Теперь пишем подпрограмму. Имя объекта в НБ повторится не может. Поиск по базе выдаст нам одну строку в которой мы будем иметь все значения которые нам нужны....
Короче пробовать надо и все будет понятно. :)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата (Вадим)
а ему вполне можно изменения внести в самом проекте и перекомпилировать его.

К примеру ты создаешь триальную программу с урезанным функционалом. Ну например твоя программа при поиске выдает не все значения, а три. Показывает не весь список плагинов, а 10-50... В базе у тебя функция, или подпрограмма которая накладывает эти ограничения. Тебе заплатили за программу, и теперь вместо того что бы скачивать весь дистрибутив, ты меняешь текстовый файл в базе так же как обновляешь базу. И программа становится полностью функциональной. Это как пример. ;) Не надо качать всю базу заново, просто меняешь текстовые файлы, в любое время когда тебе это надо.

Цитата (Вадим)
Я пока не понимаю, какие проблемы поможет решить именно такой подход.

Очень долго расписывать.
К примеру кнопка по названием Booton1.
Переменная заголовка [Booton1_Title]
Переменные размеров [Booton1_X], [Booton1_Y]
ну и т.д. Цвет, рамка, путь к картинкам...
Все это нужно хранить в реестре, в ini, или в самой программе. Сколько строк? А если объектов 50-100.
Плюс значения по умолчанию.
Теперь предположим нам надо получить, записать значения. Для каждого объекта придется писать свой код. Ну с этим просто столкнутся надо. Для организации поиска придется искать каждую переменную.
В базе мы первое поле пишем с названием объекта. А дальше поля Имя переменной, Значение переменной, Значение по умолчанию, Цвет объекта, стиль, путь к рисунку1, путь к рисунку2..... На сколько фантазии хватит. Теперь пишем подпрограмму. Имя объекта в НБ повторится не может. Поиск по базе выдаст нам одну строку в которой мы будем иметь все значения которые нам нужны....
Короче пробовать надо и все будет понятно. :)

Автор - mishem
Дата добавления - 19 Апреля 2013 в 00:09
  • Страница 1 из 1
  • 1
Поиск: