YuretsGr писал(а):
Чи є можливість вивести вікно для вводу тексту як @Dialog.Ask але з багатьма полями і поєднати з функцією @Dialog.Select. щоб все було в одному вікні?
Чи є функція яка викликає вікно для вводу параметрів, наприклад «інформація про власника або користувача земельної ділянки»?
Дякую.
Я роблю так, як написав Руслан вище. Але тут ще обов'язково треба перед тим задавати параметру маску. Виглядає воно ось так:
$V=@Calc Char(124)
$V=@DequoteText $V
@Map.DeselectAll
$N=@Map.NewObject ID10000
@Map.Object[$N].Point[1] 100 100
@Map.RefreshObject $N
@Map.SelectObject $N
@SelectTab 3
;створюємо параметр ID12345 при його відсутності
$Par=@Map.Parameters.Get ID12345
@if $Par= then @Map.Parameters.Add 12345 5 Вибір чогось
;добавляємо параметр ID12345 в список доступних шару ІН4 Квартал
$ParDil=@Map.Layers.GetValidParameters ID12345
@Map.Layers.SetValidParameters ID10000 $ParDil ID12345
@Map.Parameters.Mask ID12345 *=Значення1,*=Значення2,*=ще щось@ Пункт1$V Пункт2$V Ще щось
@Dialog.EditParameter ID12345
$AVse=@Map.Object[$N].Parameter[ID12345]
$Z1=@StringPart 1,$AVse
$Z2=@StringPart 2,$AVse
$Z3=@StringPart 3,$AVse
@Dialog.Message $Z1|$Z2|$Z3Суть цього коду в тому, що створюється новий об'єкт ІН4 Квартал, в ньому створюється новий параметр, задається його маска і викликається редагування цього параметра. Маскою задається кількість і значення окремих полів.
Але цей метод має ряд мінусів. Тому я просив в розробників про схоже діалогове вікно з можливістю вибрати декілька варіантів чи щось типу цього.
Не зрозумів, що ви маєте на увазі під "поєднати з функцією @Dialog.Select"? Для якої це задачі таке потрібно?
Функція, яка викликає вікно для вводу параметрів - це якраз
@Dialog.EditParameter. Але такі складні вікна параметрів, доступ до яких йде через інші загальніші вона не викличе. Для цього можна використовувати звичайну функцію
@Dialog.Ask Text, а потім іншими спеціальними функціями отримане значення вписувати в теги в потрібне місце.