Чтение и выполнение скрипта из файла
|
|
Sam726 | Дата: Среда, 14 Октября 2009, 23:04 | Сообщение # 1 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Всем привет. Помогите пожалуйста с кодом. Короче я хочу сделать так что бы можно было менять цвет объекта, я использую этот код SetObjectParam("Rectangle","BGCOLOR=255,0,0"). Он работает, но мне надо что бы я мог изменять код цвета внешним файлом. К примеру записав его в *.txt и при запуске программы цвет объекта будет таким, как я его напишу в *.txt файле. Я уже мго чего перепробывал, но никак не получается. ПОМОГИТЕ ПОЖАЛУЙСТА. Очень надо, спасибо.
|
|
| |
DEMBEL | Дата: Среда, 14 Октября 2009, 23:20 | Сообщение # 2 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Mad-Dog) К примеру записав его в *.txt и при запуске программы цвет объекта будет таким, как я его напишу в *.txt файле. Ну чего проще-то... Читай текст из файла командой StrFromFile, присваивай его в переменную и вставляй ее в команду SetObjectParam. Code file$='c:\color.txt' bgcolor$='BGCOLOR='+StrFromFile(file$,1,1) SetObjectParam("Rectangle","bgcolor$") В файл c:\color.txt пишешь строчку цвета, например 160,35,70 Весь фокус в том, чтобы вручную сформировать в переменной bgcolor$ параметр BGCOLOR, и подставлять в SetObjectParam уже саму переменную. Подобный фокус часто везде приходится применять, так что советую разобраться.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
Сообщение отредактировал DEMBEL - Среда, 14 Октября 2009, 23:21 |
|
| |
Sam726 | Дата: Четверг, 15 Октября 2009, 00:02 | Сообщение # 3 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| DEMBEL, СПАСИБО!!! Только я чет опять запутался. А оно че построчно не будет пахать? LoadText("new$","<List>1") file$='new$' bgcolor$='BGCOLOR='+StrFromFile(file$,1,1) SetObjectParam("Rectangle0","bgcolor$")
|
|
| |
YURIY | Дата: Четверг, 15 Октября 2009, 00:19 | Сообщение # 4 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Mad-Dog, ладно, прощаю. Прочти правила и не нарушай их! Ответ на твой вопрос. Допустим, файл находится здесь: C:\mmb.txt и содержит строку: Code SetObjectParam("Rectangle","BGCOLOR=255,0,0") Тогда выполнить его нужно так: Code LoadText("code$","C:\mmb.txt") RunScriptCode("code$","1") Причём, правила ты нарушил 2 раза. Такая тема уже была! http://mmbuilder.ru/forum/14-1465-1 Учимся пользоваться поиском.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Четверг, 15 Октября 2009, 01:06 | Сообщение # 5 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| YURIY, у меня этот код не читает RunScriptCode("code$","1")
|
|
| |
YURIY | Дата: Четверг, 15 Октября 2009, 01:07 | Сообщение # 6 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Mad-Dog, это работает только в последней версии MMB. У тебя 4.9.8.13?
Вечная память Андрею Сергееву!
|
|
| |
DEMBEL | Дата: Четверг, 15 Октября 2009, 01:09 | Сообщение # 7 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Mad-Dog) YURIY, у меня этот код не читает Quote (YURIY) У тебя 4.9.8.13? Ну по всей видимости нет. Искать тут.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
Сообщение отредактировал DEMBEL - Четверг, 15 Октября 2009, 01:10 |
|
| |
Sam726 | Дата: Пятница, 16 Октября 2009, 19:53 | Сообщение # 8 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Блин! Что с сайтом случилось? Двое суток зайти сюда не мог. Это только у меня или нет? Кстати! Я вспомнил как надо было написать нужный мне код. Все на много проще. Code SongListLoad("D:\Color.txt","") LoadText("a$","<List>1") SetObjectParam("Rectangle","a$") А в файле "Color.txt" пишем "BGCOLOR=230,230,250" Вот такта
|
|
| |
YURIY | Дата: Пятница, 16 Октября 2009, 19:54 | Сообщение # 9 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Mad-Dog) Блин! Что с сайтом случилось? Двое суток зайти сюда не мог. Это только у меня или нет? У тебя. Quote (Mad-Dog) Все на много проще. Три строки кода - это проще, чем одна строка?
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Воскресенье, 02 Мая 2010, 17:32 | Сообщение # 10 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Скажите, а можно загрузить скрипт в ListBox?
Сообщение отредактировал Sam726 - Воскресенье, 02 Мая 2010, 17:30 |
|
| |
DEMBEL | Дата: Воскресенье, 02 Мая 2010, 17:38 | Сообщение # 11 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Sam726) Скажите, а можно загрузить скрипт в ListBox??? а зачем? Загрузить текст "скрипта" в листбокс построчно можно, а дальше? Это же не будет скриптом, а просто текстовыми строчками в пунктах списка. Вытаскивать потом те строки которые нужны и компоновать их в скрипт? тогда еще есть какой-то смысл...
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
YURIY | Дата: Воскресенье, 02 Мая 2010, 18:05 | Сообщение # 12 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| DEMBEL, да нет, он хочет динамически менять скрипт, который будет выполняться при выборе пункта в списке. Какой вопрос, такой и ответ - можно
Вечная память Андрею Сергееву!
|
|
| |
DEMBEL | Дата: Воскресенье, 02 Мая 2010, 18:09 | Сообщение # 13 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (YURIY) он хочет динамически менять скрипт, который будет выполняться при выборе пункта в списке. аа... а зачем тогда именно спрошено было "грузить скрипт в листбокс" когда надо присваивать пункту списка выполнение заданного скрипта при его выборе... я понял буквально
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sam726 | Дата: Воскресенье, 02 Мая 2010, 20:52 | Сообщение # 14 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Не ну, тема о загрузке скрипта. И то что в список можно скрипт загрузить (и не только) это ясно. А вот имеено как сказал YURIY, динамически менять скрипт. Вот это будет будет внутри и его нужно менять. Возможно или нет??? Code ListBoxGetSelectedItems("List","SelItems$,SelItemsNum$,#,SelNumItems") If (VAL(SelItemsNum$)=1) Then MessageEx("1","1") End If (VAL(SelItemsNum$)=2) Then MessageEx("1","2") End
Сообщение отредактировал Sam726 - Воскресенье, 02 Мая 2010, 23:34 |
|
| |
YURIY | Дата: Воскресенье, 02 Мая 2010, 21:31 | Сообщение # 15 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Итак. Допустим, есть файл C:\1.txt, в котором содержится сценарий и он должен будет выполняться при выборе пункта в списке: Code For i=1 To 5 Message("Привет!","") Next i В скрипте старта страницы создаём динамически объект Script: Code CreateScript("Script","script$") В скрипте для двойного клика по пунктам списка пишем следующее: То есть, будет выполняться код, который мы погрузим из файла в только что созданный объект. Ну и создадим кнопку, к примеру, которая из файла подгрузит сценарий: Code path$='C:\1.txt' s$='SCRIPT:1='+StrFromFile(path$,1,-1) SetObjectParam("script$","s$") С помощью SetObjectParam меняем код скрипта созданного объекта Script на тот, что получили из файла + впереди должен быть код "SCRIPT:1=". Ну вот и всё. Когда нужен будет другой скрипт из другого файла - меняем имя в path$, всё остальное не трогаем. После запуска проекта для данного примера делаем двойной клик по списку и выводятся 5 сообщений с надписью "Привет!" Демо прилагаю.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Понедельник, 03 Мая 2010, 00:13 | Сообщение # 16 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Блин! Или я что-то не так понял или оно нето. Мне бы необходимо менять скрип тот, в который мы грузим как выше указано RunScript("script$") "Двойной щелчек". Что-то мне кажется что наверное такое невозможно... По крайней мери в справке о загрузке скриптов о ListBox невспоминалось.
Сообщение отредактировал Sam726 - Понедельник, 03 Мая 2010, 00:14 |
|
| |
YURIY | Дата: Понедельник, 03 Мая 2010, 00:23 | Сообщение # 17 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Начинается... Давай тогда, описывай подробно всё.
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Понедельник, 03 Мая 2010, 00:56 | Сообщение # 18 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Заходим в свойства ListBox. И видем перед собой окно: Теперь жмем на "Actions" (скрипт). И видем другое окно: Вот в это окно и нужно загружать разные скрипты с файла. Пример: Code ListBoxGetSelectedItems("List","SelItems$,SelItemsNum$,#,SelNumItems") If (VAL(SelItemsNum$)=1) Then MessageEx("Message 1","Hello!") End
Сообщение отредактировал Sam726 - Понедельник, 03 Мая 2010, 01:07 |
|
| |
YURIY | Дата: Понедельник, 03 Мая 2010, 01:16 | Сообщение # 19 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Sam726) Вот в это окно и нужно загружать разные скрипты с файла. Во время выполнения программы? Пример чего это? Не соображу никак, как это сопоставить с твоей задачей!
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Понедельник, 03 Мая 2010, 01:49 | Сообщение # 20 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
| Допустим при запуске страници добавляется строка в список при помоши команды: Code ListBoxAddItem("ListBox","Select 1") Нажав на кнопку грузится скрипт: Code ListBoxGetSelectedItems("List","SelItems$,SelItemsNum$,#,SelNumItems") If (VAL(SelItemsNum$)=1) Then MessageEx("Message 1","Hello!") End Получается что при нажатии на первый пункт мы увидем сообщение "Hello!" Загрузив допустип другой скрипт нажав на другую кнопку: Code ListBoxGetSelectedItems("List","SelItems$,SelItemsNum$,#,SelNumItems") If (VAL(SelItemsNum$)=1) Then LoadText("Text",Hello!") End При нажатии на первый пункт в объект "Text" будет загружен текст "Hello!". Улавливаеш суть??? Смена скрипта внутри списка.
|
|
| |
YURIY | Дата: Понедельник, 03 Мая 2010, 01:57 | Сообщение # 21 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Sam726) Улавливаеш суть??? Я её уловил ещё чёрт знает когда! Ну что ж, переходим к следующему этапу. Попробуй доказать, что мой пример работает не так, как ты написал только что. Пора бы уже разбираться хотя бы в готовом, что тебе дают, а не компостировать людям мозги! Добавлено (03 Май 2010, 01:57) --------------------------------------------- Создай пять, тридцать, сто кнопок - сколько хочешь, а в каждой пиши Code path$='ПУТЬ К ФАЙЛУ СКРИПТА' s$='SCRIPT:1='+StrFromFile(path$,1,-1) SetObjectParam("script$","s$") И скрипт будет сменяться при нажатии на такую кнопку! Как же мне ещё объяснить, сил уже нет
Вечная память Андрею Сергееву!
|
|
| |
Sam726 | Дата: Понедельник, 03 Мая 2010, 02:06 | Сообщение # 22 |
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
|
Сообщение отредактировал Sam726 - Понедельник, 03 Мая 2010, 02:10 |
|
| |