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

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

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

или

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


Здесь:

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

iTable - дескриптор таблицы из двух колонок - bool с отметкой да/нет и string - текст для выбора.

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

sselected - список помеченых вариантов через разделитель и возвращаемый набор значений, так же через разделитель;

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


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

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


Пример.

Получить от пользователя список ФИО архитекторов с отметкой да/нет.


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

ts_table(iTable, "add_column", -1, "bool", "h1");

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

ts_table(iTable, "add_row", 0, false, 1, "Иванов В.В.");

ts_table(iTable, "add_row", 0, true , 1, "Петров В.В.");

ts_table(iTable, "add_row", 0, false, 1, "Сидоров В.В.");

int res = ac_request("EditCheckStringsDialog", "Введите ФИО архитекторов", iTable);

if (res == 1)

{

   string str;

   ts_table(iTable, "print_to_str", str);

   coutvar << str;

}

object("delete", iTable);




str=rowcount=3 

0). h1=0 h2=Иванов В.В.

1). h1=1 h2=Петров В.В.

2). h1=0 h2=Сидоров В.В.


Пример 2.


string savailable = "1 значение;2 значение;3 значение";
string sselected = "2 значение;3 значение";
int res = ac_request("EditCheckStringsDialog", "Тип линии", savailable, sselected,";");
if (res == 1)
{
   coutvar << sselected;
}