Аналитика http://www.geosystema.net/forum/ |
|
Все про скрипти http://www.geosystema.net/forum/viewtopic.php?f=1&t=2809 |
Страница 76 из 83 |
Автор: | Dmitry_Zolotar [ 25 янв 2021 17:17 ] |
Заголовок сообщения: | Re: Все про скрипти |
Alpha - (не)прозорість панелі, та відповідно й кнопок на ній. 255 - непрозора панель, 0 - прозора. Спробували прибирати прозорість коли курсор в межах панелі, видно не все ще працює добре. Margin - відступ дочірньої кнопки від краю батьківської панелі. Ctrl-Shift-C в Гуглохромі покаже картинку з співвідношенням Margin, Padding, Border. Anchor визначає сторону прив'язки дочірнього об'єкта, коли батьківській змінює розмір. Не зрозуміло звідки в tlb-файлі воно з'явилось) розмір панелі не змінюється курсором миші. |
Автор: | voha [ 13 фев 2021 14:45 ] |
Заголовок сообщения: | Re: Все про скрипти |
Доброго дня. Є одне питання: як найпростіше у скрипті обробки події %Events.OnChange визначити, чи було редаговано геометрію об'єкта (переміщено окремі точки), чи було переміщено об'єкт? Це ж мабуть треба звірити вектор зміщення центру об'єкта з вектором зміщення кожної точки об'єкта? В зв'язку з вказаним, хочу спитати розробників: чи можна окремо додати обробку події переміщення об'єкта/об'єктів EventOnMove? |
Автор: | fendak [ 14 фев 2021 12:57 ] |
Заголовок сообщения: | Re: Все про скрипти |
voha писал(а): Є одне питання: як найпростіше у скрипті обробки події %Events.OnChange визначити, чи було редаговано геометрію об'єкта (переміщено окремі точки), чи було переміщено об'єкт? Це ж мабуть треба звірити вектор зміщення центру об'єкта з вектором зміщення кожної точки об'єкта? Доброго дня! В будь-якому разі треба до редагування (чи до можливого редагування) записати кудись координати об'єкта, щоб потім можна звірити. Я б це зробив через $SO=@Map.SelectedObject $PointList=@Map.Object[$SO].PointList @Map.TempString $PointList А потім при обробці події зчитав ще раз цю інформацію $PointList2=@Map.Object[$SO].PointList і порівняв $PointList=@Map.TempString $PointList @if "$PointList"<>"$PointList2" then @Break Редаговано |
Автор: | voha [ 14 фев 2021 21:34 ] |
Заголовок сообщения: | Re: Все про скрипти |
fendak писал(а): ...В будь-якому разі треба до редагування (чи до можливого редагування) записати кудись координати об'єкта, щоб потім можна звірити... Чемно дякую, Миколо.і порівняв $PointList=@Map.TempString $PointList @if "$PointList"<>"$PointList2" then @Break Редаговано Однак записати координати треба ж у скрипті обробки події селектування об'єкта на рівні карти. Крім того, об'єкт може виявитися позначеним в результаті роботи кожного, з десятка інших скриптів. Дописувати у кожному? Не годиться також - просто звірити списки. Порівнювати треба всі точки об'єкта: якщо знайдеться перша ж не змінена - значить тягнули окремі точки; якщо змінилися координати всіх точок - значить перетягнули об'єкт за центр. Можна ще звірити два вектора переміщення: центра об'єкта і - будь якої зміненої точки. В такому випадку вектори переміщення ще й будувати як об'єкти прийдеться! Поки чекатиму на відповідь розробників: чи можна окремо додати обробку події переміщення об'єкта/об'єктів EventOnMove або як у скрипті обробки події відрізнити переміщення від зміни геометрії? |
Автор: | Vaho [ 18 фев 2021 08:55 ] |
Заголовок сообщения: | Re: Все про скрипти |
Доброго дня. Підкажіть будь-ласка. Мається змінна $N в якій записаний кадастровий номер, яким чином з неї можна витягнути останні 4 цифри (типу copy ($N,19,4)). Дякую. |
Автор: | voha [ 18 фев 2021 09:26 ] |
Заголовок сообщения: | Re: Все про скрипти |
Vaho писал(а): Доброго дня. Підкажіть будь-ласка. Мається змінна $N в якій записаний кадастровий номер, яким чином з неї можна витягнути останні 4 цифри (типу copy ($N,19,4)). Дякую. Код: $PathN=@Calc Copy("$N",19,4)
$PathN=@DequoteText $PathN |
Автор: | Xoxol [ 25 фев 2021 19:06 ] |
Заголовок сообщения: | Re: Все про скрипти |
Dmitry_Zolotar писал(а): Без проверки количества собственников и их типа (физособа или юрособа) Код: $SO=@Map.SelectedObject $Props=@Map.Object[$SO].Parameter[ID7000520] $LastName=@XML.XPath /Proprietors/ProprietorInfo[1]/Authentication/NaturalPerson/FullName/LastName $Props $FirstName=@XML.XPath /Proprietors/ProprietorInfo[1]/Authentication/NaturalPerson/FullName/FirstName $Props $MiddleName=@XML.XPath /Proprietors/ProprietorInfo[1]/Authentication/NaturalPerson/FullName/MiddleName $Props $FullName=$LastName $FirstName $MiddleName @Dialog.Message $FullName $ROPNM=@Map.Object[$SO].CalculateFormula ROP($FullName) @Dialog.Message $ROPNM Добрый вечер! Подскажите новичку, так как не знаю откуда начать. С диджиталом начал работать как неделю. Сделал схему размещения, но не знаю как в неё "втулить" этот скрипт. Делаю как кнопку, в окне мне выдает проскланённое имя фамилию, но вот как это сделать дабы оно мне в тексте это сделало? Подскажите пожалуйста! |
Автор: | fendak [ 25 фев 2021 20:11 ] |
Заголовок сообщения: | Re: Все про скрипти |
Xoxol писал(а): Добрый вечер! Подскажите новичку, так как не знаю откуда начать. С диджиталом начал работать как неделю. Сделал схему размещения, но не знаю как в неё "втулить" этот скрипт. Делаю как кнопку, в окне мне выдает проскланённое имя фамилию, но вот как это сделать дабы оно мне в тексте это сделало? Подскажите пожалуйста! В шаблоні в текстовий блок вставте змінну $ROPNM, яку ви отримали скриптом. А щоб шаблон перетворив її у значення згідно обмінника xml, використайте в тій самій кнопці такий код: @Map.DeselectAll @Map.SelectLayer id70005 $Papka=@ProgramFolder @ExecuteDocumentFromFile $Papka\назва шаблону.dmt @Map.ReplaceTableVariables П.С. @Map.ReplaceTableVariables - сканує текст таблиць і замінює змінні їх значеннями Замість назва шаблону поставте свою назву шаблону (має знаходитися в папці Digitals) |
Автор: | Xoxol [ 25 фев 2021 21:12 ] |
Заголовок сообщения: | Re: Все про скрипти |
fendak писал(а): Xoxol писал(а): Добрый вечер! Подскажите новичку, так как не знаю откуда начать. С диджиталом начал работать как неделю. Сделал схему размещения, но не знаю как в неё "втулить" этот скрипт. Делаю как кнопку, в окне мне выдает проскланённое имя фамилию, но вот как это сделать дабы оно мне в тексте это сделало? Подскажите пожалуйста! В шаблоні в текстовий блок вставте змінну $ROPNM, яку ви отримали скриптом. А щоб шаблон перетворив її у значення згідно обмінника xml, використайте в тій самій кнопці такий код: @Map.DeselectAll @Map.SelectLayer id70005 $Papka=@ProgramFolder @ExecuteDocumentFromFile $Papka\назва шаблону.dmt @Map.ReplaceTableVariables П.С. @Map.ReplaceTableVariables - сканує текст таблиць і замінює змінні їх значеннями Замість назва шаблону поставте свою назву шаблону (має знаходитися в папці Digitals) Проблема в том что после этого скрипта открывается ещё одно окно этого же шаблона и в него не вытягивает другие значения которые вытягивало до этого. А нельзя да бы при открытии шаблона сразу происходило склонение? Простите под вечер немного натупил. Надо в первом же окне наживать кнопку. Написал себе скрипт в эту же кнопку $Pravo=@XML.XPath OwnershipInfo/Code @if $Pravo=100 then $Info=власність else $Info=оренду @Dialog.Message $Info При указании в поле форма собствености 100 тянет значение "оренду". Что я делаю не так? |
Автор: | fendak [ 25 фев 2021 23:04 ] |
Заголовок сообщения: | Re: Все про скрипти |
fendak писал(а): Написал себе скрипт в эту же кнопку $Pravo=@XML.XPath OwnershipInfo/Code @if $Pravo=100 then $Info=власність else $Info=оренду @Dialog.Message $Info При указании в поле форма собствености 100 тянет значение "оренду". Что я делаю не так? В скриптах Digitals трохи інша мова програмування: @Map.SelectLayer id70005 $I=@Map.SelectedObject $Pravo=@Map.Object[$I].Parameter[id7000512] $Pravo=@StringPart 1 $Pravo $Info=оренду @if $Pravo=100 then $Info=власність @Dialog.Message $Info |
Автор: | Xoxol [ 26 фев 2021 13:25 ] |
Заголовок сообщения: | Re: Все про скрипти |
fendak писал(а): fendak писал(а): $Pravo=@Map.Object[$I].Parameter[id7000512] А почему параметр 12? Есть расшифровка параметров? Да и функций тоже? |
Автор: | Denidz [ 01 мар 2021 21:23 ] |
Заголовок сообщения: | Re: Все про скрипти |
Добрый день. Можно ли все-таки реализовать к скриптам комментарии, которые будут видны в панели скриптов, аналогично комментам для базовых функций. Может это будет спец коммент который начинается не с ";", а например с #. Voha уже просил, я тоже присоединяюсь к его просьбе. |
Автор: | voha [ 01 мар 2021 22:36 ] |
Заголовок сообщения: | Re: Все про скрипти |
Доброї пори доби розробникам. Є таке прохання: подивіться, будь-ласка, на скриптову функцію @Run ExeFilename У збиранні від 19.01.21 - працює, а вже від 19.02.21 і до тепер - не працює. Дуже дякую, за 40 нових скриптових функцій у збиранні 01.03.21. Є що досліджувати , особливо цікаві @Thread ScriptCommand, @ThreadActive Handle та @WaitForThread Handle. Залишаю актуальним: Denidz писал(а): Добрый день. Можно ли все-таки реализовать к скриптам комментарии, которые будут видны в панели скриптов, аналогично комментам для базовых функций. Может это будет спец коммент который начинается не с ";", а например с #. Voha уже просил, я тоже присоединяюсь к его просьбе.
|
Автор: | Dmitry_Zolotar [ 02 мар 2021 17:15 ] |
Заголовок сообщения: | Re: Все про скрипти |
voha писал(а): Є таке прохання: подивіться, будь-ласка, на скриптову функцію @Run ExeFilename У збиранні від 19.01.21 - працює, а вже від 19.02.21 і до тепер - не працює. Приклад, будь ласка, що саме перестало запускатись. Повний шлях до егзешника вказаний? Чи є додатково параметри командної строки? Чи викликається функція для файлу зареєстрованого розширення? Містить шлях/ім'я пробіли? Наступні строки - все різні випадки @Run C:\Program Files (x86)\Google\Chrome\Application\chrome.exe http://vinmap.net/ @Run http://vinmap.net/ @Run C:\Windows\System32\notepad.exe d:\readme.txt @Run notepad.exe d:\readme.txt @Run d:\readme.txt |
Автор: | Dmitry_Zolotar [ 02 мар 2021 17:47 ] |
Заголовок сообщения: | Re: Все про скрипти |
voha писал(а): особливо цікаві @Thread ScriptCommand, @ThreadActive Handle та @WaitForThread Handle. Скрипт запускає обробку *.txt з папки в кількох потоках(максимальна одночасна кількість потоків визначена змінною $MaxThreadCount=5) та контролює завершення кожного. Для кожного потока викликається лише одна команда, для прикладу тут %Library.ProcessTxt $FileName $WorkFolder=@Dialog.Ask Вкажіть папку з *.txt @If $WorkFolder= then @Break @Text[1].FolderList *.txt $WorkFolder $FileCount=@Text[1].Count $MaxThreadCount=5 @Text[2].Clear $I=0 ; %Loop: $ThCount=@Text[2].Count @if $ThCount=$MaxThreadCount then @Goto %CheckThreads $J=$ThCount %LoopAddThread $J=$J+1 @if $I=$FileCount then @Goto %CheckThreads $I=$I+1 $FileName=@Text[1].Line[$I] $Handle=@Thread %Library.ProcessTxt $Filename @Text[2].Add $Handle @if $J<$MaxThreadCount then @Goto %LoopAddThread ; %CheckThreads: $ThCount=@Text[2].Count @If $ThCount=0 then @Goto %Finish $J=$ThCount %LoopThread $Handle=@Text[2].Line[$J] $IsActive=@ThreadActive $Handle @if $IsActive=0 then @Text[2].Delete $J $J=$J-1 @if $J>0 then @Goto %LoopThread %Finish: @if ($ThCount<>0) or ($I<$FileCount) then @Goto %Loop |
Страница 76 из 83 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |