Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL  
"Совет дня"
PeterДата: Чт, 30 Апреля 2009, 21:54 | Сообщение # 1
Админ NeoBook
"Совет дня"
Исходный код.

Нередко разработчики программного обеспечения включают в своё "детище" опцию показа всем уже известного окошка "Совет дня" при запуске приложения. В "Советах дня" обычно рассказывается о некоторых особенностях программы, даются краткие подсказки по работе.
И, если уж мы собираемся создавать свои собственные программы, то почему бы нам тоже не работать "по-взрослому"? Тем более, что в NeoBook сделать заветное окошко "Совет дня" совсем просто!
В проекте показан пример "Совет дня" в классическом варианте чтения из текстового файла "Tips".

Сделано в NeoBook v5.0.2

Прикрепления: 0952660.png (10.4 Kb) · Tips.rar (4.6 Kb)


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

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

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


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение"Совет дня"
Исходный код.

Нередко разработчики программного обеспечения включают в своё "детище" опцию показа всем уже известного окошка "Совет дня" при запуске приложения. В "Советах дня" обычно рассказывается о некоторых особенностях программы, даются краткие подсказки по работе.
И, если уж мы собираемся создавать свои собственные программы, то почему бы нам тоже не работать "по-взрослому"? Тем более, что в NeoBook сделать заветное окошко "Совет дня" совсем просто!
В проекте показан пример "Совет дня" в классическом варианте чтения из текстового файла "Tips".

Сделано в NeoBook v5.0.2


Автор - Peter
Дата добавления - 30 Апреля 2009 в 21:54
MaratДата: Сб, 11 Декабря 2010, 13:26 | Сообщение # 2
Новичок
Peter, Не могу разобраться почему в твоем примере советы идут по порядку т.е. 1...2...3... и тд.
Ведь генерируется случайное число. Пытаюсь сделать что то наподобие ,но "советы" показываются вразнобой, а при числе 0 показывается полностью весь документ!
Может вопрос глуп и некорректен ,но прошу извинить новичка.
 
СообщениеPeter, Не могу разобраться почему в твоем примере советы идут по порядку т.е. 1...2...3... и тд.
Ведь генерируется случайное число. Пытаюсь сделать что то наподобие ,но "советы" показываются вразнобой, а при числе 0 показывается полностью весь документ!
Может вопрос глуп и некорректен ,но прошу извинить новичка.

Автор - Marat
Дата добавления - 11 Декабря 2010 в 13:26
DEMBELДата: Сб, 11 Декабря 2010, 13:46 | Сообщение # 3
Наш дизайнер
Случайное число генерируется только при открытии окна, чтобы начинало читать со случайной строчки файла, а далее при нажатии кнопки Следующий (см. скрытый контейнер в проекте) советы показываются по возрастанию порядка, там нету генерации рандома, только увеличение строки на 1, и если конец файла то переход к 1 строчке:

FileLen "[PubDir]Tips.txt" "[Len]"
If "[Num]" "<" "[Len]"
   SetVar "[Num]" "[Num]+1" - вот здесь наращиваем номер строки
   FileRead "[PubDir]Tips.txt" "[Num]" "[Tip]" - и читаем его пока он не превысит [Len]
  Else
   SetVar "[Num]" "1" - если превысил, то начинаем с первой строки
   FileRead "[PubDir]Tips.txt" "[Num]" "[Tip]"
EndIf


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

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

FileLen "[PubDir]Tips.txt" "[Len]"
If "[Num]" "<" "[Len]"
   SetVar "[Num]" "[Num]+1" - вот здесь наращиваем номер строки
   FileRead "[PubDir]Tips.txt" "[Num]" "[Tip]" - и читаем его пока он не превысит [Len]
  Else
   SetVar "[Num]" "1" - если превысил, то начинаем с первой строки
   FileRead "[PubDir]Tips.txt" "[Num]" "[Tip]"
EndIf


Автор - DEMBEL
Дата добавления - 11 Декабря 2010 в 13:46
MaratДата: Сб, 11 Декабря 2010, 14:06 | Сообщение # 4
Новичок
Спасибо за разъяснение , щас попробую сам разобраться ! Тупо копировать не хочется,надо вникнуть.... Еще раз спасибо.!
 
СообщениеСпасибо за разъяснение , щас попробую сам разобраться ! Тупо копировать не хочется,надо вникнуть.... Еще раз спасибо.!

Автор - Marat
Дата добавления - 11 Декабря 2010 в 14:06
DEMBELДата: Сб, 11 Декабря 2010, 14:44 | Сообщение # 5
Наш дизайнер
все элементарно, разложу еще раз логику сценария построчно. Открыли окно, туда прочиталась случайная строчка и вывелась на экран. Ее номер положился в переменную [Num]. Далее в кнопке Следующий:

1. Читаем кол-во строк файла Tips (хотя оно уже прочитано при открытии и лежит в [Len], ну да ладно...
2. [Условие]: Если [Num] меньше (и не равно!) [Len], тогда далее (показываем советы)
3. Увеличиваем номер строки совета [Num] на 1 (следующий)
4. Читаем эту новую строчку номер [Num] и кладем ее содержимое в [Tip] для показа...
5. [Если условие нарушено]: [Num] стал равен или больше [Len]
6. Присваиваем в номер строчки [Num] единицу, т.е. будем читать файл сначала.
7. Читаем эту новую строчку номер [Num] и кладем ее содержимое в [Tip] для показа...
8. [Конец условия]

обратите внимание что в конце файла tips есть пустая строка, т.е. нужно следить за соблюдением условия [Num]<[Len]. В данном примере последняя строка не выводится, т.к. когда [Num] станет равной [Len] (последняя строка), условие будет нарушено и будет вызвана первая строка. Если в вашем файле последняя строка не пустая, то условие должно включать и равенство номера строки = общему кол-ву строк:
If "[Num]" "<=" "[Len]"


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

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениевсе элементарно, разложу еще раз логику сценария построчно. Открыли окно, туда прочиталась случайная строчка и вывелась на экран. Ее номер положился в переменную [Num]. Далее в кнопке Следующий:

1. Читаем кол-во строк файла Tips (хотя оно уже прочитано при открытии и лежит в [Len], ну да ладно...
2. [Условие]: Если [Num] меньше (и не равно!) [Len], тогда далее (показываем советы)
3. Увеличиваем номер строки совета [Num] на 1 (следующий)
4. Читаем эту новую строчку номер [Num] и кладем ее содержимое в [Tip] для показа...
5. [Если условие нарушено]: [Num] стал равен или больше [Len]
6. Присваиваем в номер строчки [Num] единицу, т.е. будем читать файл сначала.
7. Читаем эту новую строчку номер [Num] и кладем ее содержимое в [Tip] для показа...
8. [Конец условия]

обратите внимание что в конце файла tips есть пустая строка, т.е. нужно следить за соблюдением условия [Num]<[Len]. В данном примере последняя строка не выводится, т.к. когда [Num] станет равной [Len] (последняя строка), условие будет нарушено и будет вызвана первая строка. Если в вашем файле последняя строка не пустая, то условие должно включать и равенство номера строки = общему кол-ву строк:
If "[Num]" "<=" "[Len]"


Автор - DEMBEL
Дата добавления - 11 Декабря 2010 в 14:44
DEMBELДата: Сб, 11 Декабря 2010, 17:44 | Сообщение # 6
Наш дизайнер
Если кому не нравится столь суровое оформление, вот можете использовать нечто более сексапильное
(в архиве 3 фона и кнопка).

Прикрепления: Tips.zip (40.0 Kb) · 8914706.png (42.1 Kb)


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

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


Автор - DEMBEL
Дата добавления - 11 Декабря 2010 в 17:44
PeterДата: Сб, 11 Декабря 2010, 18:00 | Сообщение # 7
Админ NeoBook
Quote (DEMBEL)
Если кому не нравится столь суровое оформление

Это "суровое оформление" идет ещё со времен Win95, и, кстати (на мой взгляд), самое информативное, хоть и аскетичное, и уж всяк лучше оформления в стиле Win7 с её идиотскими размытыми шрифтами.


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

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

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


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (DEMBEL)
Если кому не нравится столь суровое оформление

Это "суровое оформление" идет ещё со времен Win95, и, кстати (на мой взгляд), самое информативное, хоть и аскетичное, и уж всяк лучше оформления в стиле Win7 с её идиотскими размытыми шрифтами.

Автор - Peter
Дата добавления - 11 Декабря 2010 в 18:00
MaratДата: Сб, 11 Декабря 2010, 18:58 | Сообщение # 8
Новичок
Получилось , Разобрался сам без копирования ! Правда немного упрощенный вариант.
Прикрепления: Sovet.rar (2.0 Kb)


Сообщение отредактировано
Marat - Сб, 11 Декабря 2010, 18:59
 
СообщениеПолучилось , Разобрался сам без копирования ! Правда немного упрощенный вариант.

Автор - Marat
Дата добавления - 11 Декабря 2010 в 18:58
DEMBELДата: Сб, 11 Декабря 2010, 20:25 | Сообщение # 9
Наш дизайнер
код Startup

Code
SetVar "[Len]" ""
FileLen "[PubDir]Sovet.txt" "[Len]"
SetVar "[Num]" ""
Random "[Len]" "[Num]"
If "[Num]" "<" "[Len]"
SetVar "[Num]" "[Num]+1"
FileRead "[PubDir]Sovet.txt" "[Num]" "[Sovet]"
Return
Else

EndIf

SetVar "[Num]" "" SetVar "[Len]" ""
Переменные [Num] и [Len] обнулять необязательно, при старте необьявленные переменные всегда и так пустые. Если пишешь код во вкладке Startup то он выполнится только один раз в момент запуска и все будет ок, а другое дело если например в кнопке пишешь которую нажать можно и несколько раз, тогда есть смысл обнулять переменные.

Return
Зачем тут Return? Это команда прерывания скрипта, но тут можно обойтись и условиями.

Теперь представьте что сгенерировалось максимальное число 6, тогда [Len]=[Num] и условие не выполнится. Это исключение необходимо добавить в секцию Else где и присвоить [Num] переход к началу файла, [Num]=1.

Code
FileLen "[PubDir]Sovet.txt" "[Len]"
Random "[Len]" "[Num]"
If "[Num]" "<" "[Len]"
SetVar "[Num]" "[Num]+1"
FileRead "[PubDir]Sovet.txt" "[Num]" "[Sovet]"
Else
SetVar "[Num]" "1"
FileRead "[PubDir]Sovet.txt" "[Num]" "[Sovet]"
EndIf

В кнопке код правильный (да гляжу он получился таким же как и мой))).

Добавлено (11 Декабрь 2010, 20:25)
---------------------------------------------



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

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениекод Startup

Code
SetVar "[Len]" ""
FileLen "[PubDir]Sovet.txt" "[Len]"
SetVar "[Num]" ""
Random "[Len]" "[Num]"
If "[Num]" "<" "[Len]"
SetVar "[Num]" "[Num]+1"
FileRead "[PubDir]Sovet.txt" "[Num]" "[Sovet]"
Return
Else

EndIf

SetVar "[Num]" "" SetVar "[Len]" ""
Переменные [Num] и [Len] обнулять необязательно, при старте необьявленные переменные всегда и так пустые. Если пишешь код во вкладке Startup то он выполнится только один раз в момент запуска и все будет ок, а другое дело если например в кнопке пишешь которую нажать можно и несколько раз, тогда есть смысл обнулять переменные.

Return
Зачем тут Return? Это команда прерывания скрипта, но тут можно обойтись и условиями.

Теперь представьте что сгенерировалось максимальное число 6, тогда [Len]=[Num] и условие не выполнится. Это исключение необходимо добавить в секцию Else где и присвоить [Num] переход к началу файла, [Num]=1.

Code
FileLen "[PubDir]Sovet.txt" "[Len]"
Random "[Len]" "[Num]"
If "[Num]" "<" "[Len]"
SetVar "[Num]" "[Num]+1"
FileRead "[PubDir]Sovet.txt" "[Num]" "[Sovet]"
Else
SetVar "[Num]" "1"
FileRead "[PubDir]Sovet.txt" "[Num]" "[Sovet]"
EndIf

В кнопке код правильный (да гляжу он получился таким же как и мой))).

Добавлено (11 Декабрь 2010, 20:25)
---------------------------------------------


Автор - DEMBEL
Дата добавления - 11 Декабря 2010 в 20:25
  • Страница 1 из 1
  • 1
Поиск: