|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
02.01.2012, 10:53 | #1 | |
Ограничения в List-box при множественном выборе
КИП, АСУ ТП, слаботочка
Москва-Тюмень
Регистрация: 02.09.2010
Сообщений: 422
|
||
Просмотров: 12248
|
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Oliver_88,
ной да, странно, почему работает с 500 строчками? Может потому, что ты используешь get_tile, а я присваиваю значение в action_tile списка? В любом случае, поставь вместо 500 - 600. И акад вылетит. Какая-то ошибка происходит. Иногда акад пишет ошибку нарушения доступа. Странно, в общем. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
И вообще (даже другими средствами), не выводить в линейный список для выбора пользователем большое количество строк. |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
ShaggyDoc,
совет хороший! Я тоже думаю создать возможность выбора большого количества строк - не в dcl, а при помощи подкачки текстовых файлов. Но это редко когда понадобится в моей программе, так что особого внимания этим функциям не буду уделять. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Надо только один раз сделать несколько универсальных, правильно работающих, надежных диалогов и закрыть эту тему для себя навсегда. Это быстрее, чем ты разбирался на форуме с первым встреченным глюком. Возможно обнаружишь, что кроме этих нескольких простых диалогов, вызываемых как функции, тебе вообще больше ничего не понадобится. Примеры простых диалогов для работы со списками на картинках. Все вызываются из LISP в виде функций. Например, список с "галочками" (ru-dlg-show-check-list dlg_caption ; Заголовок окна lst_names ; Список строк lst_values ; Список значений (помечен или нет) lst_enabled ; Список доступности для изменения help_file topic_id ; Пункт справки ) Последний раз редактировалось ShaggyDoc, 03.01.2012 в 16:19. Причина: Движок форума стал глючить с тегами? |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Сделать доступной кнопку "Удалить" (или еще какую, которая результат принимает), если выбран хоть один элемент
Ты лучше думай, как пользователю обеспечить удобный выбор, да еще такого количества. В обычном ListBox множественный выбор осуществляется стандартными средствами - мышкой с нажатыми Shift или Ctrl. При больших списках это чрезвычайно неудобно - достаточно один раз сбиться (на 1499 элементе), и начинай все сначала. Вот для этого и делают специальные диалоги. Например, в списке с "галочками" (CheckListBox) выбор не зависит от навигации и не сбивается. Можно и мышкой щелкать по галочкам, а клавишами прокручивать. Можно и отметку пробелом делать. Можно и свою клавишу назначить. Другой вид списка, с двумя окнами (DualListBox), позволяет перебрасывать элементы из окна в окно. Допустим, надо выбрать 1500 элементов из 1600. В простом списке надо будет щелкнуть до 1500 раз. В DualListBox исходный список помещаем в левое окно. Пользователь может одним щелчком перебросить весь список в правое окно, а затем выбрать в нем и перебросить обратно только оставляемые 100 элементов. Тогда справа останется 1500 удаляемых элементов. Это будет в 15 раз быстрее. Да еще и элементы можно заодно по вертикали перетаскивать, т.е. изменять порядок следования. Можно и запомнить состояние списков и дать работать "с перекурами". Последний раз редактировалось ShaggyDoc, 03.01.2012 в 20:10. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
если б меня заставили выбрать 256 пунктов из 32768, я б афтору надел его диалоговое окно на голову, как юзер
Любые сложные данные можно структурировать и далее работать с деревьями (Вспомните установщик акада в пользовательском режиме), в примитивном виде это можно и через dcl организовать, если недотрах Что касается картинок, то все, кроме последней можно организовать в dcl, последнюю тоже можно, если см. выше Как по мне, оптимальный вариант - перейти на vb.net Вариант ShaggyDoc мне лично не нравится тем, что нужно создавать установщик, да и не нужные по сути системе библиотеки регистрировать как то не очень хочется, ну и к тому же, при первом запуске, такая ком-форма появится не сразу... доли секунды, а негативное отношение уже сложено... впрочем все это не смертельно самый лучший вариант - сесть и подумать как обойтись без длинных списков, 90% это возможно |
|||
|
|||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Цитата:
Цитата:
Нужно не говорить о том, на что можно перейти, а перейти и сделать Цитата:
|
||||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Цитата:
Благодарю за полезный и конструктивный комментарий |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
Offtop: вышеперечисленное больше к Gomer'у относится. ИХМО это либо утопия, либо самообман - да любое действие можно и через ДОС ком-строку организовать (и в свое время было не мало "доказательств", что так удобней всего) - да можно написать десяток другой и потом все под них "подгонять", но значит-ли это "закрыть эту тему для себя на всегда" - как минимум у меня пока точно не получилось.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
будь я профессиональным программистом, писал бы аэриксы, жаль не пришлось
Цитата:
считал, первый запуск длится около секунды, остальные - как тока, так сразу... что там внутри происходит, не разбирался, делал самую простую форму с одной кнопкой Цитата:
в любом случае, если вы пытаетесь втиснуть в диалог данные со сложной структурой, то этот диалог должен растягиваться. этого нет и не будет в dcl. В общем-то вариантов море. у всех свои достоинства и недостатки. Oliver_88, почитайте про start_dialog в справке и не повторяйте автодесковских ошибок |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Цитата:
Вот почти все диалоги, которые я использую: ruXmlMenu - иллюстрированное XML-меню. Единый диалог, позволяющий заменить множество индивидуально конструируемых форм. Картинку в очередной раз показываю. Помимо универсальных приемов работы позволяет продвинутым пользователям расширять возможности любых программ дополнением собственными данными. Без участия программиста. Списки (показаны в #12) ruChkList ruDoubleList2 ruDualList ruSingleList Ввод двух чисел или строк (можно и одиночных, как опции). Имеют проверки допустимых диапазонов (для чисел), выбора из справочников, выбора спецсимволов (для строк), "взять" указанием в чертеже. ruGetDoubleNumber ruGetDoubleString (см. картинку) ruSplash - заставка с информацией о длительном процессе ruFileDlg - очень быстрый файловый диалог с рядом дополнительных возможностей. ruCoordEdit - визуальный редактор координат (как-то показывал картинку) ruXmlTable - редактор любых таблиц. Таблицу пользователь может и сам создать (с шапками и прочим оформлением), редактировать её как таблицу БД. И в виде таблицы AutoCAD нарисовать, не заботясь об оформлении. См. картинку. ruTxtView - просмотр текста из файла или чертежа ruLayerClass - классификатор слоев. Вот этот как раз сделан специально в виде EXE, причем не модального. Правильная комбинация таких диалогов позволяет быстро создавать практически любые программы. Конечно, для отдельных сложных случаев приходится делать и более сложные формы. Вот программа аэродинамического расчета (см. рисунок) тоже сделана в виде самостоятельной программы, но она же и в LISP встроена в виде диалога. Это позволяет написать результаты расчета на нарисованной схеме, а в Автокаде измерить длины участков. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как получить доступ к таблице Access | Cleper | Программирование | 22 | 02.02.2016 07:05 |
Express Tools | Perezz!! | AutoCAD | 483 | 13.02.2015 10:57 |
(GRREAD) и привязка | Ева | Программирование | 17 | 18.12.2009 09:10 |
Работоспособность программы написанной очень давно. | faust999 | Программирование | 1 | 05.06.2009 08:06 |
3D Konstruktor для проектировщиков КМ. | Дима_ | Готовые программы | 17 | 10.07.2008 10:03 |