Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Как сделать закладки?
mcpanmcДата: Вт, 27 Октября 2009, 09:29 | Сообщение # 1
Участник
Как сделать закладки в книге так, чтобы при закрытии и открытии на главной странице можно было бы сразу перейти к тому месту в книге, где сделал закладку. Спасибо.
 
СообщениеКак сделать закладки в книге так, чтобы при закрытии и открытии на главной странице можно было бы сразу перейти к тому месту в книге, где сделал закладку. Спасибо.

Автор - mcpanmc
Дата добавления - 27 Октября 2009 в 09:29
DEMBELДата: Вт, 27 Октября 2009, 13:22 | Сообщение # 2
Наш дизайнер
Можно запоминать имя или номер страницы, сохраняя их в системный реестр командой RegistryWrite, и потом загружать из реестра - RegistryRead и переходить к нужной странице через GotoPage.

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеМожно запоминать имя или номер страницы, сохраняя их в системный реестр командой RegistryWrite, и потом загружать из реестра - RegistryRead и переходить к нужной странице через GotoPage.

Автор - DEMBEL
Дата добавления - 27 Октября 2009 в 13:22
mcpanmcДата: Вт, 27 Октября 2009, 13:53 | Сообщение # 3
Участник
Спасибо...но если несложно- можно чуть подробнее. С NB я недавно общаюсь напрямую- суть понял, нехватает практики. На каком нибудь примере. я думаю это было бы многим интересно.
 
СообщениеСпасибо...но если несложно- можно чуть подробнее. С NB я недавно общаюсь напрямую- суть понял, нехватает практики. На каком нибудь примере. я думаю это было бы многим интересно.

Автор - mcpanmc
Дата добавления - 27 Октября 2009 в 13:53
DEMBELДата: Вт, 27 Октября 2009, 14:32 | Сообщение # 4
Наш дизайнер
Запоминам в реестр имя текущей страницы (PageTitle):
RegistryWrite "HKEY_CURRENT_USER" "Software\Kniga\Zakladka1" "[PageTitle]"
это можете написать в меню Book Properties -> Actions во вкладке Shutdown, тогда эта команда будет выполняться постоянно при выходе из приложения, либо запишите ее в кнопку. Соответственно, закладок может быть несколько, измените имя ключа Zakladka1 для создания новой закладки.
---
Возвращаем из реестра данные в переменную Zakladka1 и переход по ней:
RegistryRead "HKEY_CURRENT_USER" "Software\Kniga\Zakladka1" "[Zakladka1]"
GotoPage "[Zakladka1]"

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


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеЗапоминам в реестр имя текущей страницы (PageTitle):
RegistryWrite "HKEY_CURRENT_USER" "Software\Kniga\Zakladka1" "[PageTitle]"
это можете написать в меню Book Properties -> Actions во вкладке Shutdown, тогда эта команда будет выполняться постоянно при выходе из приложения, либо запишите ее в кнопку. Соответственно, закладок может быть несколько, измените имя ключа Zakladka1 для создания новой закладки.
---
Возвращаем из реестра данные в переменную Zakladka1 и переход по ней:
RegistryRead "HKEY_CURRENT_USER" "Software\Kniga\Zakladka1" "[Zakladka1]"
GotoPage "[Zakladka1]"

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

Автор - DEMBEL
Дата добавления - 27 Октября 2009 в 14:32
mcpanmcДата: Вт, 27 Октября 2009, 15:49 | Сообщение # 5
Участник
ОГРРРРОМНОЕ СПАСИБО)))

Добавлено (27 Октябрь 2009, 15:49)
---------------------------------------------
Пытаюсь сделать закладки по тибу браузера... Точно по такому же принципу. Создаю верхнее меню. там опция- поставить закладку. Как сделать так, чтобы после нажатия появилось такое же окно с присвоением имени или чтобы просто дабавилась в подменю закладка. И появлялись следующие. Это видимо отдельная тема для отдельного урока)

 
СообщениеОГРРРРОМНОЕ СПАСИБО)))

Добавлено (27 Октябрь 2009, 15:49)
---------------------------------------------
Пытаюсь сделать закладки по тибу браузера... Точно по такому же принципу. Создаю верхнее меню. там опция- поставить закладку. Как сделать так, чтобы после нажатия появилось такое же окно с присвоением имени или чтобы просто дабавилась в подменю закладка. И появлялись следующие. Это видимо отдельная тема для отдельного урока)


Автор - mcpanmc
Дата добавления - 27 Октября 2009 в 15:49
BodiДата: Вт, 27 Октября 2009, 16:30 | Сообщение # 6
Ветеран форума
Quote (mcpanmc)
Как сделать так, чтобы после нажатия появилось такое же окно с присвоением имени или чтобы просто дабавилась в подменю закладка.

Ну для этого надо присвоить закладке уникальное имя. Можно для этого воспользоваться командой "InputBox". А можно задавать имя автоматически используя счетчик, например если последней была закладка "Zakladka1", то у следующей закладки индекс уже будет "2" и т.д.

Добавлено (27 Октябрь 2009, 16:30)
---------------------------------------------
А можно поподробней, какая вообще у вас задача? Как вы задаете закладки?

 
Сообщение
Quote (mcpanmc)
Как сделать так, чтобы после нажатия появилось такое же окно с присвоением имени или чтобы просто дабавилась в подменю закладка.

Ну для этого надо присвоить закладке уникальное имя. Можно для этого воспользоваться командой "InputBox". А можно задавать имя автоматически используя счетчик, например если последней была закладка "Zakladka1", то у следующей закладки индекс уже будет "2" и т.д.

Добавлено (27 Октябрь 2009, 16:30)
---------------------------------------------
А можно поподробней, какая вообще у вас задача? Как вы задаете закладки?


Автор - Bodi
Дата добавления - 27 Октября 2009 в 16:30
СергейДата: Вт, 27 Октября 2009, 17:19 | Сообщение # 7
Необукер
Quote (mcpanmc)
Как сделать так, чтобы после нажатия появилось такое же окно с присвоением имени или чтобы просто дабавилась в подменю закладка.

можно и свое окно сделать, в контейнер положить 2 обеъкта "TextEntry" один для "Названия", другой для "Описания"(по желанию кончно), и кнопку "ОК"
А всю конфигурацию хранить в файле(!), и реестр по возможности не загаживать!, всякой "ненужной ватой", чем меньше туда ходу, тем лучше для винды
В файл настройки сохранять в такой конструкции
Переменая1=значения1
Переменая2=значения2

Потом загрузить а проект можно одной строчкой "LoadVariables"


Сообщение отредактировано
sp3d - Вт, 27 Октября 2009, 17:23
 
Сообщение
Quote (mcpanmc)
Как сделать так, чтобы после нажатия появилось такое же окно с присвоением имени или чтобы просто дабавилась в подменю закладка.

можно и свое окно сделать, в контейнер положить 2 обеъкта "TextEntry" один для "Названия", другой для "Описания"(по желанию кончно), и кнопку "ОК"
А всю конфигурацию хранить в файле(!), и реестр по возможности не загаживать!, всякой "ненужной ватой", чем меньше туда ходу, тем лучше для винды
В файл настройки сохранять в такой конструкции
Переменая1=значения1
Переменая2=значения2

Потом загрузить а проект можно одной строчкой "LoadVariables"

Автор - Сергей
Дата добавления - 27 Октября 2009 в 17:19
mcpanmcДата: Вт, 27 Октября 2009, 17:19 | Сообщение # 8
Участник
Я делаю электронную книгу. Я еще не один вопрос задам для совместного решения))) Просто надо, чтобы пользователь читая книгу мог через всплывающее меню создать закладку, назвать ее, и при случае вызвать или удалить))) Вот я и думаю над реализацией) Спасибо.
 
СообщениеЯ делаю электронную книгу. Я еще не один вопрос задам для совместного решения))) Просто надо, чтобы пользователь читая книгу мог через всплывающее меню создать закладку, назвать ее, и при случае вызвать или удалить))) Вот я и думаю над реализацией) Спасибо.

Автор - mcpanmc
Дата добавления - 27 Октября 2009 в 17:19
DEMBELДата: Вт, 27 Октября 2009, 17:23 | Сообщение # 9
Наш дизайнер
ладно, раз так уж трудно оказалось, сделаю демо пример, токо попозже щас я занят...

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеладно, раз так уж трудно оказалось, сделаю демо пример, токо попозже щас я занят...

Автор - DEMBEL
Дата добавления - 27 Октября 2009 в 17:23
СергейДата: Вт, 27 Октября 2009, 17:50 | Сообщение # 10
Необукер
вот небольшой примерчик, пощелкайте страницы и сохраните закладку, потом еще раз пощелкайте и откройте закладку, у вас номер будет сохраненной
Прикрепления: zakladka.rar (2.3 Kb)
 
Сообщениевот небольшой примерчик, пощелкайте страницы и сохраните закладку, потом еще раз пощелкайте и откройте закладку, у вас номер будет сохраненной

Автор - Сергей
Дата добавления - 27 Октября 2009 в 17:50
DEMBELДата: Вт, 27 Октября 2009, 18:06 | Сообщение # 11
Наш дизайнер
Короче, используем реестр (хотя можно и файл, так даже лучше будет)
Изучите скрипты написанные в пунктах закладок.
На что нужно обратить внимание:
- создавать пункты меню из проекта нельзя, их нужно создать заранее самому. Создадим например десяток полей для закладок и скроем их (снять флажок с поля Visible в закладке).
- в качестве переменной идентификатора закладки используется поле ItemID, его структура: z1, z2 ... z10. Число после буквы z будем использовать в цикле для обработки закладок в качестве счетчика [C] оборота цикла - сколько будет закладок, столько и обработается.
- тот же принцип используем и для имен переменных хранящихся в реестре и имен переменных заголовка закладки: zakl1, zakl2... таким образом через этот номер мы сопоставим друг с другом все нужные переменные. Также это число после будем использовать в цикле для обработки закладок в качестве счетчика [C] оборота цикла - сколько будет закладок zakl в реестре, столько и обработается.
- Количество закладок хранится в реестре в ветке Number, туда пишем последний активированный номер закладки - [n].
При первом старте проекта закладок изначально вовсе нет, и попытка чтения этой ветки приведет к вылету окна с ошибкой, т.к. и самой ветки-то еще нет. Поэтому отключите в проекте вывод окон ошибок: Book->Book properties->Access-> снять галочку display error messages. А в самом скрипте отловится окно с ошибкой в условии:
Code
If "[LastError]" ">" ""
    GotoLine "stop"
  Endif

и скрипт закончится, загрузки закладок не произойдет.
- еще раз, обратите внимание на принцип формирования переменных закладок z и zakl и как в них включаются числа, в этом весь принцип. Скрипт из поля "Закладки" можно убрать на старт проекта: Book->Book properties->Actions->Startup, чтобы не искало каждый раз при открытии меню.
Если разберетесь, то сделать пункт удаления закладок не составит труда, иначе смею упрекнуть вас в отсутствии логического мышления.

Добавлено (27 Октябрь 2009, 18:06)
---------------------------------------------
и sp3d тоже вариант предлагает неплохой

Прикрепления: zakl.zip (2.5 Kb)


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеКороче, используем реестр (хотя можно и файл, так даже лучше будет)
Изучите скрипты написанные в пунктах закладок.
На что нужно обратить внимание:
- создавать пункты меню из проекта нельзя, их нужно создать заранее самому. Создадим например десяток полей для закладок и скроем их (снять флажок с поля Visible в закладке).
- в качестве переменной идентификатора закладки используется поле ItemID, его структура: z1, z2 ... z10. Число после буквы z будем использовать в цикле для обработки закладок в качестве счетчика [C] оборота цикла - сколько будет закладок, столько и обработается.
- тот же принцип используем и для имен переменных хранящихся в реестре и имен переменных заголовка закладки: zakl1, zakl2... таким образом через этот номер мы сопоставим друг с другом все нужные переменные. Также это число после будем использовать в цикле для обработки закладок в качестве счетчика [C] оборота цикла - сколько будет закладок zakl в реестре, столько и обработается.
- Количество закладок хранится в реестре в ветке Number, туда пишем последний активированный номер закладки - [n].
При первом старте проекта закладок изначально вовсе нет, и попытка чтения этой ветки приведет к вылету окна с ошибкой, т.к. и самой ветки-то еще нет. Поэтому отключите в проекте вывод окон ошибок: Book->Book properties->Access-> снять галочку display error messages. А в самом скрипте отловится окно с ошибкой в условии:
Code
If "[LastError]" ">" ""
    GotoLine "stop"
  Endif

и скрипт закончится, загрузки закладок не произойдет.
- еще раз, обратите внимание на принцип формирования переменных закладок z и zakl и как в них включаются числа, в этом весь принцип. Скрипт из поля "Закладки" можно убрать на старт проекта: Book->Book properties->Actions->Startup, чтобы не искало каждый раз при открытии меню.
Если разберетесь, то сделать пункт удаления закладок не составит труда, иначе смею упрекнуть вас в отсутствии логического мышления.

Добавлено (27 Октябрь 2009, 18:06)
---------------------------------------------
и sp3d тоже вариант предлагает неплохой


Автор - DEMBEL
Дата добавления - 27 Октября 2009 в 18:06
PeterДата: Ср, 28 Октября 2009, 00:15 | Сообщение # 12
Админ NeoBook
Маленькое дополнение...
Quote (DEMBEL)
создавать пункты меню из проекта нельзя, их нужно создать заранее самому.

Да, к сожалению, в готовом скомпилированном проекте можно только менять доступность пунктов главного меню, их видимость, а также содержание (название), но количество пунктов меню и структура меню создаются заранее на стадии проектирования, и остаются неизменными все время работы скомпилированного приложения.
Однако, у обоих необушных всплывающие меню (Menu и MenuEx) менять динамически количество и содержимое пунктов можно.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
СообщениеМаленькое дополнение...
Quote (DEMBEL)
создавать пункты меню из проекта нельзя, их нужно создать заранее самому.

Да, к сожалению, в готовом скомпилированном проекте можно только менять доступность пунктов главного меню, их видимость, а также содержание (название), но количество пунктов меню и структура меню создаются заранее на стадии проектирования, и остаются неизменными все время работы скомпилированного приложения.
Однако, у обоих необушных всплывающие меню (Menu и MenuEx) менять динамически количество и содержимое пунктов можно.

Автор - Peter
Дата добавления - 28 Октября 2009 в 00:15
СергейДата: Ср, 28 Октября 2009, 10:08 | Сообщение # 13
Необукер
Quote (Peter)
Однако, у обоих необушных всплывающие меню (Menu и MenuEx) менять динамически количество и содержимое пунктов можно.
да можно, но как к ним обращатся я так и не понял...
Вчера хотел накидать пример по созданию динамического меню, создавал через цикл,
но как обратится к каждому элементу не догнал redface , старею :)
В качестве примера использовал пример из справки НБ, где на каждое нажатие на элемент выскакивает алерт с названием этого элемента, но если честно, дальше не стал ковырятся, были дела....
 
Сообщение
Quote (Peter)
Однако, у обоих необушных всплывающие меню (Menu и MenuEx) менять динамически количество и содержимое пунктов можно.
да можно, но как к ним обращатся я так и не понял...
Вчера хотел накидать пример по созданию динамического меню, создавал через цикл,
но как обратится к каждому элементу не догнал redface , старею :)
В качестве примера использовал пример из справки НБ, где на каждое нажатие на элемент выскакивает алерт с названием этого элемента, но если честно, дальше не стал ковырятся, были дела....

Автор - Сергей
Дата добавления - 28 Октября 2009 в 10:08
mcpanmcДата: Чт, 29 Октября 2009, 00:06 | Сообщение # 14
Участник
Большое спасибо. Если несложно- объясните, как сделать так, чтобы закладке можно было присвоить имя. При ее сохранении читатель сам задавал его.
 
СообщениеБольшое спасибо. Если несложно- объясните, как сделать так, чтобы закладке можно было присвоить имя. При ее сохранении читатель сам задавал его.

Автор - mcpanmc
Дата добавления - 29 Октября 2009 в 00:06
DEMBELДата: Чт, 29 Октября 2009, 01:31 | Сообщение # 15
Наш дизайнер
Имя закладки задается в поле Caption. В моем примере там находятся переменные zakl1, zakl2... zakl10. Этим переменным присваивается значение [PageTitle] - имя текущей страницы:
...
setvar "[zakl[n]]" "[PageTitle]"
...
Достаточно ввести еще один массив переменных [zakl_name[n]] для хранения имени закладки и вставить всплывающее поле ввода:
...
InputBox "Заголовок" "Введите имя закладки" "[zakl_name[n]]"
setvar "[zakl[n]]" "[PageTitle]"
...
Ну и соответственно организовать хранение этого массива, вставить строчку при записи закладок:
RegistryWrite "HKEY_CURRENT_USER" "Software\Kniga\Zak_Name[n]" "[zakl_name[n]]"
и загрузке из реестра:
RegistryRead "HKEY_CURRENT_USER" "Software\Kniga\Zak_Name[C]" "[zakl_name[C]]"

И поменять поля Caption в закладках, вместо [zakl1], [zakl2]... написать [zakl_name1], [zakl_name2]... и т.д.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеИмя закладки задается в поле Caption. В моем примере там находятся переменные zakl1, zakl2... zakl10. Этим переменным присваивается значение [PageTitle] - имя текущей страницы:
...
setvar "[zakl[n]]" "[PageTitle]"
...
Достаточно ввести еще один массив переменных [zakl_name[n]] для хранения имени закладки и вставить всплывающее поле ввода:
...
InputBox "Заголовок" "Введите имя закладки" "[zakl_name[n]]"
setvar "[zakl[n]]" "[PageTitle]"
...
Ну и соответственно организовать хранение этого массива, вставить строчку при записи закладок:
RegistryWrite "HKEY_CURRENT_USER" "Software\Kniga\Zak_Name[n]" "[zakl_name[n]]"
и загрузке из реестра:
RegistryRead "HKEY_CURRENT_USER" "Software\Kniga\Zak_Name[C]" "[zakl_name[C]]"

И поменять поля Caption в закладках, вместо [zakl1], [zakl2]... написать [zakl_name1], [zakl_name2]... и т.д.


Автор - DEMBEL
Дата добавления - 29 Октября 2009 в 01:31
mcpanmcДата: Чт, 29 Октября 2009, 08:12 | Сообщение # 16
Участник
То, что надо))) Спасибо, мужики)
 
СообщениеТо, что надо))) Спасибо, мужики)

Автор - mcpanmc
Дата добавления - 29 Октября 2009 в 08:12
  • Страница 1 из 1
  • 1
Поиск: