|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Поле для ввода данных в DCL-окно
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616
|
||
Просмотров: 7447
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
list_box ?
----- добавлено через 9 сек. ----- popup_list ?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
не бывает такого
|
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
А, точно, не бывает... Забыл уже (
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
В смысле - "не бывает" ?
Autodesk, если мне склероз не изменяет, декларирует, что все стандартные окна Автокада написаны на DCL. Команда: _DSETTINGS Далее вкладка "Отслеживание", "Полярные углы", "Шаг углов". Вот такое поле и нужно.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Цитата:
![]() Возможно, когда-то давно так и было. Сейчас это не так, конечно же.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Ну, как вариант, просто два поля edit_box и popup_list зрительно расположены рядом.
И при выборе чего-нибудь в popup_list этот выбор ставится в edit_box . Упс! Хотел одной строкой обойтись… Не, не получается. Список всё равно не в виде единичной стрелочки, а в виде широкого поля выглядит.
__________________
Счастливо, Алексей! Последний раз редактировалось ===AAA===, 21.02.2020 в 14:55. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
===AAA===, по-моему, заставить код реагировать на ввод символа в текстовое поле dcl-диалога невозможно. Хотел бы ошибиться.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Не, идея в другом.
Сперва выбираешь из раскрывающегося списка, оно в качестве значения по-умолчанию подставляется в текстовое поле рядом. Хочешь - оставляешь, хочешь - заменяешь на любое своё. Но, видимо, овчинка выделки не стоит...
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
так можно, легко
![]() |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Do$, в чем рисовал? )))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 08.12.2018
Сообщений: 164
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop: в AutoLisp есть другие встроенные технологии создания диалогов?)
По факту, думаю, что ядро изначально писалось на С/С++, а вот интерфейсная часть сначала неизвестно на чем.. WTL, MFC, Windows Forms, WPF появились позже первых версий акада. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
И даже если в названии присутствовало "Vision" никакой визуализации не было. Просто можно было использовать заранее заготовленные формы в модулях. И так во времена DOS работали на всех языках - C, C++, Pascal, Clipper, Basic. Пока не произошел переход на Windows и не появились визуальные редакторы. Появление DCL в R12 для Автолиспа было весьма прогрессивным делом, до этого диалоговые окна приходилось делать в других системах. Но средства DCL весьма примитивны и все это безнадежно устарело. Нет никакого смысла за них держаться. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
за движение мыши драйвер мыши отвечал, наверно, все таки.. а вот взаимодействие низкоуровневое с драйвером мыши через регистры было полностью на совести программиста... Зато программист фактически полностью управлял ресурсами напрямую в MS-DOS, а сейчас в современных языках типа того же .Net его пускают резвиться в выделенной песочнице управляемого кода за счет увеличения потребляемых ресурсов - зато безопасно для других приложений.
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Код:
И это надо было делать в каждой программе. В современных средах программирования ничем подобным и не надо заниматься. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop:
Цитата:
странно, конечно - что за все эти годы не был реализован в DCL ComboBox режим ввода, в результате чего ТС приходится колхоз городить. Или "движок" DCL не трогали с момента его реализации - работает, ну и хорошо) |
|||
![]() |
|
||||
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Offtop: В этой статье столько бредовой информации, что плевался чуть ли ни на каждой строке...
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop: это же вики, а не научное издание или официальное руководство) Да и для подавляющего большинства пользователей Акада и не нужна эта информация, имхо - они пользуются лишь готовыми решениями и шаблонными действиями, не углубляясь в технические дебри...
|
|||
![]() |
|
||||
Регистрация: 13.11.2017
Сообщений: 31
|
Здравствуйте! Еще вопрос про dcl. При переходе в новый диалог меняются введенный текст и исчезают значения переменных. Скажите, корректно ли обращаться так с диалогом и что я делаю с ним не так?
(action_tile "pipeD" "(setq pipeD (atof (get_tile \"pipeD\")))") |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Вообще-то все будет зависеть от того, что происходит до вызова второго диалога. Данные сохранены? Тогда ставь set_tile. Нет? Тогда сохраняй.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
или так... только вот для перевода фокуса нужно кликать 2 раза
|
||||
![]() |
|
||||
Неужели это в DCL сделано?
Насколько я помню, там с картинками беда была. Можно было использовать только слайды.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Цитата:
----- добавлено через ~2 мин. ----- хотя сделать полноценную превьюшку блока вряд ли получится... |
||||
![]() |
|
||||
Я имел в виду, что нельзя вставить привычную картинку в виде png, bmp, jpg и т.п.
То, что можно векторами-отрезками рисовать - это "так себе" альтернатива...
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
это вообще не альтернатива! это такие конкретные костыли! это же касается и слайдов! но разрабы ведь не собираются добавлять в традиционный в dcl ничего нового, поэтому что имеем, из того и лепим. какой уж dcl они там используют для своих окошек - неведомо)))
|
||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
1. Иллюстрированное древовидное меню с возможностью брать иллюстрации из чертежа или из любого окна или из буфера. Имеет наибольшее применение для чего угодно. 2. Выбор из списка. 3. Выбор из двух списков. 4. Ввод одной или двух строк (или чисел) с возможностями выбора из справочников и "взять в чертеже". 5. Отбор из списка с возможностью сортировки. Научиться такое дело проще, чем разобраться с DCL. А для использования ничего не надо программировать, надо только обычным текстовым редактором править меню. При этом один диалог может использоваться и в других программах. |
|||
![]() |
|
||||
Это в чём сделанные окошки? Вы, скорее всего, уже раз сто на этот вопрос отвечали.
![]() ![]() А так - да, согласен, что можно много взаимодействий с пользователем свести к этому списку диалогов.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) Последний раз редактировалось Do$, 27.02.2020 в 22:10. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Отвечу немного "наперед"
![]() Delphi, регистрируемый COM-сервер, все дела...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
У кого это "не принято"? Если пользователю надо выбрать что-то в диалоге, то какое изменение должно сразу сохраняться? Должна быть возможность именно выбрать с закрытием диалога (ОК) или просто его закрыть, ничего не выбрав. Ну да, можно и здоровенных иконок наделать, где не надо. А где надо покрупнее - наоборот, унаследовать микроскопический навигатор БД, как у мелкософта и заставлять напрягать зрение. Вот когда работаем с БД, так там для приложения в целом, нет пунктов Сохранить или Отменить - всё автоматом. Но для редактирования одной записи непременно есть и Применить и Отменить. Вот из-за того, что "привнесено из WEB" одной из самых популярных услуг является замена Win10 на нормальные ОС. |
|||
![]() |
|
||||
промышл проектант Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323
|
А не подскажите готовые решения для людей знакомых с ЛИСП но и только. Для которых регистрация DLL и вызов серверов не совсем тривиальная задача. Решения с готовыми библиотеками и кодом на лисп с вызовом окон, передачей и получением данных.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Готовые решения только самостоятельно. dcl, callback-функции, вызывающие функции, обработка контролов и т.д.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Т.е. суть какая - хранение и выбор данных на внешних носителях пишется и отлаживается в бесплатной студии вообще отдельно от акада - а потом переносите отлаженные формы и сопутствующий код в проект сборки *.dll, оборачивая в вызов функций .Net с атрибутом LispFunction. Код на лиспе получает сразу готовые значения из возвращаемого значения функции .Net, а в аргументах этой же функции ResultBuffer args можно передать исходные значения для инициализации начального состояния диалогов - см. de211-2.pdf. Можете конечно сразу и в WPF сунуться вместо WinForms, но там изначально не настолько прозрачно для понимания - цена за гибкость технологии) |
|||
![]() |
|
||||
Ну это как посмотреть. С нашей колокольни - да, всё просто до безобразия. Но в то же время, умея уже вот это всё, зачем тогда что-то писать на LISP? На LISP, в основном, пишут программы для автоматизации своей работы инженеры. Изучать .NET, WinForm/WPF требует довольно много времени и немалой мотивации. Далеко не каждый к такому готов. А изучив, уже вряд ли захочет вернуться на LISP.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
Цитата:
Я имел в виду, что раньше, изменяя настройки, всегда была опция все эти изменения не применять, пока не нажата кнопка подтверждения. Сейчас от этого стали избавляться. Зайдёте в настройки браузера - Вы не увидите кнопки "Сохранить". Всякие бегунки-переключатели, радио-кнопки, комбобоксы, изменения которых применяются сразу. Переключили всё что надо и закрыли страницу настроек - всё сохранилось автоматически. На смартфоне, в большинстве случаев, то же самое. В Google-документах так вообще нет опции сохранения. Все изменения сохраняются в момент их внесения. Закончил редактировать, закрыл вкладку, открыл - всё в том же состоянии, как и до закрытия. ----- добавлено через ~2 мин. ----- Цитата:
![]() Я тоже думал, что буду писать в гибридном стиле. Но выяснилось, что это жутко неудобно.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
а я поддержу Do$, гибридный стиль это конечно ОЧЕНЬ круто, но требует много лишнего, в то время, когда любой чистый лисп работает из коробки. и наверное можно смириться и обходиться брошенкой-dcl
|
||||
![]() |
|
||||
Я на основе собственного опыта и пишу. Не встретил пока ни одного "гибридника": либо "лиспер", либо "дотнетчик". Но вот чтобы на LISP писал, а .NET как вспомогательный инструмент использовал - не встречал, увы.
Цитата:
Таких не знаю.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А вот насчет "свопните" или "удерживайте 5 сек" - это уже извращения. В смартфонах это еще обоснованно, но не надо распространять на нормальные приложения, потому что "так модно". Из-за "моды" и с некоторыми смартфонами трудно работать. Вот прекрасные смартфоны Redmi снабжаются жуткой оболочкой MIUI. Там надо "квест" проходить - как что-то элементарное сделать наподобие удаления ненужных смс или настройки контактов. Да еще и "модные" кнопочки - светлосерые на белом. И после каждой новой модели на форумах сотни страниц с разгадками интерфейса. А вот у другой фирмы, по тот же Андроид всё понятно сделано. Цитата:
Все-таки браузер и смарфоны - "для блондинок" и приравненных к ним. Они же не знают "всё что надо". А если не всё надо, если надо только попробовать? А уже чуть сложнее и без Применить не обойтись. Элементарная Настройка даты и времени - захотите взглянуть на "календарик", передвинете на другое число - и настройки изменятся? Потому и три кнопки ОК, Отменить, Применить. Я уж не говорю про более сложные случаи, которые в серьезных программах всегда имеются. Цитата:
Разобраться один раз, как это делается будет быстрее, чем каждый раз биться с DCL. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Offtop: К вопросу о DosLib
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
А это показывает, как связываться именно с ARX. В DOSlib нет ничего эдакого, чтобы использовать всю мощь ObjectARX, это не какое-то "вертикальное" приложение, всего лишь хороший набор полезных функций.
Еще во времена AutoCAD R14 мы сделали свой аналог. Но тогда ARX можно было написать хоть на каком языке и с любым компилятором. Мы работали с Borland C++ и Zortech C++, и на Delphi делали ARX. Это же DLL с тремя обязательными функциями, одна из которых acrxGetApiVersion возвращает версию AutoCAD. Но начиная с 2000 Autodesk "легла" под Microsoft и стало обязательным использование именно Visual Studio, да еще в сочетании с версиями AutoCAD. И acrxGetApiVersion стала не просто выдавать только номер версии, но делаеть что-то еще, не позволяя загрузить "неправильный" ARX в AutoCAD. Тогда и пришлось переходить на COM, что оказалось даже лучше и проще. Сделал 25 COM-dll, содержащих и интерфейсные и "тихие" функции и больше ничего оказалось и не нужно. Причем одни и те же DLL работают не только с AutoCAD (с вызовом из Лисп), но и с другими программами, например с Mapinfo (с вызовом из MapBasic). |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ГОСТ 21.1101-2009. Как правильно оформить изменения на листе общих данных? | Pavel13 | Прочее. Архитектура и строительство | 7 | 17.04.2025 13:53 |
Как с помощью LISP нарисовать окно линиями? | Aндрeй | LISP | 13 | 24.06.2011 14:37 |
Связь данных в поле автокад | Илья М. | Программирование | 2 | 11.02.2011 11:43 |
Текстовое окно не появляется при нажатии F2 | Боныч | AutoCAD | 3 | 09.04.2008 16:21 |
Окно ввода аттрибутов блока. Как убрать? | Pave1 | AutoCAD | 7 | 15.06.2007 14:13 |