функция ac_request() с директивой "EditStringListAndCustomDialog" вызывает диалог для выбора нескольких строк.

Формат обращения:

int res = ac_request("EditStringListAndCustomDialog",string smessage, int iTable, string str);

или

int res = ac_request("EditStringListAndCustomDialog",string smessage, int iTable, int index);

или 

int res = ac_request("EditStringListAndCustomDialog",string smessage, string savailablelist, string sselected, string sdelimiter);



Здесь:

smessage - сообщение в заголовке панели диалога, 

iTable - дескриптор таблицы с одной колонкой string - текст для выбора.

Возвращает 0 если пользователь отказался от ввода (нажал кнопку "Отменить", нажал кнопку с крестиком на рамке диалога или клавишу "Esc" на клавиатуре).

Если была нажата клавиша "Ok" то возвращается 1.

str - строка - предустановленное значение.


savailablelist - список элементов для выбора через разделитель;

sselected - предварительно выбранный элемент и возвращаемое значение;

sdelimiter - разделитель.


index - индекс предустановленной строки;

Результат получается функцией ac_getstrvalue() - если нужно получить строку или ac_getnumvalue() если нужно получить индекс. Обратите внимание, что если ac_getnumvalue() вернет 0 - то значит пользователь ввел собственный текст, которого точно нет в списке iTable или savailablelist; 


Пример.

Получить от пользователя строку из предложенных вариантов или любую другую строку.


int iTable;

object("create", "ts_table", iTable);

ts_table(iTable, "add_column", -1, "string", "col");

ts_table(iTable, "add_row", 0, "Row 1");

ts_table(iTable, "add_row", 0, "Row 2");

ts_table(iTable, "add_row", 0, "Row 3");

bool bres = ac_request("EditStringListAndCustomDialog","Enter value", iTable, "Row 0");

if(bres)

{

   string sres = ac_getstrvalue();

   int ires = ac_getnumvalue();

   coutvar << sres;

   coutvar << ires;

   object("delete", iTable);

}




Пример 2


string s = "one;two;three";
string ss = "two";
int iires = ac_request("EditStringListAndCustomDialog", "Тип линии", s, ss,";");
coutvar<<iires;
coutvar<< ss;
return;