Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » [√] Получить имя объекта зная его дескриптор (Общий скрипт обработки событий разных обьектов (лог))
[√] Получить имя объекта зная его дескриптор
antonДата: Чт, 02 Февраля 2012, 09:49 | Сообщение # 1
Ветеран форума
Нужно мне это для , скажем так, универсального скрипта для того чтобы вести лог файл всего что делается в проекте, какая кнопка нажата, какой список открыт...
Сейчас попробую пояснить что я делаю и чего хочу.

А делаю я следующее:
Сначала получаю дескрипторы всех элементов при старте (Page Enter)
Code
GetObjectHandle "PushButton1" "[button1]"
GetObjectHandle "PushButton2" "[button2]"
...

Затем в подпрограмах записываю приблизительно такой код
Code
:test
ksWindowFromPoint "[button]"
                   If "[button]" "=" "[button1]"
                      SetVar "[log]" "Нажата кнопка-1"
                   EndIf
                   If "[button]" "=" "[button2]"
                      SetVar "[log]" "Нажата кнопка-2"
                   EndIf
                   ...
Return

И в каждом элементе управления ("PushButton1"; "PushButton1"; ...) во вкладке Left Click
Code
GoSub "test"


Чего хочу: :)
1) Избавиться от предварительного получения дескрипторов элементов при старте страницы (Page Enter)
2) В подпрограмма прописать что типа вот этого:
Code
:test
ksWindowFromPoint "[button]"
[i]...какой то код получающий по  дискриптору имя объекта и сохраняющий в переменную [ИМЯ_ОБЪЕКТА][/i]
GetObjectInfo "[ИМЯ_ОБЪЕКТА]" "Caption" "[log]"
Return


Не кто из гуру не знает вообще возможно так реализовать?


"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
 
СообщениеНужно мне это для , скажем так, универсального скрипта для того чтобы вести лог файл всего что делается в проекте, какая кнопка нажата, какой список открыт...
Сейчас попробую пояснить что я делаю и чего хочу.

А делаю я следующее:
Сначала получаю дескрипторы всех элементов при старте (Page Enter)
Code
GetObjectHandle "PushButton1" "[button1]"
GetObjectHandle "PushButton2" "[button2]"
...

Затем в подпрограмах записываю приблизительно такой код
Code
:test
ksWindowFromPoint "[button]"
                   If "[button]" "=" "[button1]"
                      SetVar "[log]" "Нажата кнопка-1"
                   EndIf
                   If "[button]" "=" "[button2]"
                      SetVar "[log]" "Нажата кнопка-2"
                   EndIf
                   ...
Return

И в каждом элементе управления ("PushButton1"; "PushButton1"; ...) во вкладке Left Click
Code
GoSub "test"


Чего хочу: :)
1) Избавиться от предварительного получения дескрипторов элементов при старте страницы (Page Enter)
2) В подпрограмма прописать что типа вот этого:
Code
:test
ksWindowFromPoint "[button]"
[i]...какой то код получающий по  дискриптору имя объекта и сохраняющий в переменную [ИМЯ_ОБЪЕКТА][/i]
GetObjectInfo "[ИМЯ_ОБЪЕКТА]" "Caption" "[log]"
Return


Не кто из гуру не знает вообще возможно так реализовать?

Автор - anton
Дата добавления - 02 Февраля 2012 в 09:49
GorezcaidДата: Чт, 02 Февраля 2012, 10:03 | Сообщение # 2
Ветеран форума
Здравствуйте,
Создайте подпрограмму:
Code
:123
If "[log]" "=" ""
    SetVar "[log]" "[Self]"
Else
    SetVar "[log]" "[log];[Self]"
EndIf
Return

На кнопах - вызов подпрограммы:
Code
GoSub "123"

Quote
[Self] - Имя объекта, с которым в настоящий момент идет работа по текущей команде в соответствии со стадией скрипта. Для скриптов, не привязанных к объектам (таких как "page enter/exit"), переменная [Self] будет пустой.

Потом, когда нужно - обрабатывайте строку командой StrParse, для получения всего списка нажатых кнопок.


Win7 Pro SP1 x64; NBv5.5.4rus,v5.6.2rus, v5.7.0en, Opera
 
СообщениеЗдравствуйте,
Создайте подпрограмму:
Code
:123
If "[log]" "=" ""
    SetVar "[log]" "[Self]"
Else
    SetVar "[log]" "[log];[Self]"
EndIf
Return

На кнопах - вызов подпрограммы:
Code
GoSub "123"

Quote
[Self] - Имя объекта, с которым в настоящий момент идет работа по текущей команде в соответствии со стадией скрипта. Для скриптов, не привязанных к объектам (таких как "page enter/exit"), переменная [Self] будет пустой.

Потом, когда нужно - обрабатывайте строку командой StrParse, для получения всего списка нажатых кнопок.

Автор - Gorezcaid
Дата добавления - 02 Февраля 2012 в 10:03
antonДата: Чт, 02 Февраля 2012, 10:08 | Сообщение # 3
Ветеран форума
Огромное спасибо Gorezcaid. Все понял, отлично работает, вопрос снят....

"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
 
СообщениеОгромное спасибо Gorezcaid. Все понял, отлично работает, вопрос снят....

Автор - anton
Дата добавления - 02 Февраля 2012 в 10:08
GorezcaidДата: Чт, 02 Февраля 2012, 10:14 | Сообщение # 4
Ветеран форума
Дополняю подпрограмму:
Code
:123  
  GetObjectInfo "[Self]" "Caption" "[tmp]"
  If "[log]" "=" ""  
     SetVar "[log]" "[Self]"
     SetVar "[log2]" "[tmp]"
  Else  
     SetVar "[log]" "[log];[Self]"  
     SetVar "[log2]" "[log2];[tmp]"
  EndIf  
  Return

[log]- список объектов через разделитель
[log2]- список заголовков объектов через разделитель

Добавлено (02 Февраля 2012, 10:14)
---------------------------------------------

Quote (anton)
отлично работает, вопрос снят....
:) удачи в программировании...


Win7 Pro SP1 x64; NBv5.5.4rus,v5.6.2rus, v5.7.0en, Opera
 
СообщениеДополняю подпрограмму:
Code
:123  
  GetObjectInfo "[Self]" "Caption" "[tmp]"
  If "[log]" "=" ""  
     SetVar "[log]" "[Self]"
     SetVar "[log2]" "[tmp]"
  Else  
     SetVar "[log]" "[log];[Self]"  
     SetVar "[log2]" "[log2];[tmp]"
  EndIf  
  Return

[log]- список объектов через разделитель
[log2]- список заголовков объектов через разделитель

Добавлено (02 Февраля 2012, 10:14)
---------------------------------------------

Quote (anton)
отлично работает, вопрос снят....
:) удачи в программировании...

Автор - Gorezcaid
Дата добавления - 02 Февраля 2012 в 10:14
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » [√] Получить имя объекта зная его дескриптор (Общий скрипт обработки событий разных обьектов (лог))
  • Страница 1 из 1
  • 1
Поиск: