editcheckstringsdialog - выбор нескольких строк из списка
функция 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;
}