Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Поле для ввода данных в DCL-окно

Поле для ввода данных в DCL-окно

Ответ
Поиск в этой теме
Непрочитано 21.02.2020, 05:57
Поле для ввода данных в DCL-окно
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 470

Добрый день всем!

Напомните, плиз, какое поле нужно использовать
для создания DCL-окна для ввода текстовых данных,
(что-то типа edit_box ), но только чтобы это был ещё
и раскрывающийся список.

Т.е. хочешь - вводи свои данные, хочешь - выбирай
из предварительной наборки.
__________________
Счастливо, Алексей!
Просмотров: 7193
 
Непрочитано 22.02.2020, 13:03
#21
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,048


Offtop:
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
В современных средах программирования ничем подобным и не надо заниматься.
ну там и нет прямого доступа к физическим ресурсам ПК вследствие многозадачности операционных систем, если не написан тот же драйвер, например. Но написание драйверов - это сейчас уже далеко за границами прикладного программирования, имхо)


странно, конечно - что за все эти годы не был реализован в DCL ComboBox режим ввода, в результате чего ТС приходится колхоз городить. Или "движок" DCL не трогали с момента его реализации - работает, ну и хорошо)
Сергей812 вне форума  
 
Непрочитано 22.02.2020, 18:15
#22
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Do$, в чем рисовал? )))
https://pencil.evolus.vn/
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 23.02.2020, 00:01
#23
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,408
Отправить сообщение для Александр Ривилис с помощью Skype™


Offtop:
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
ну если посмотреть в википендии
В этой статье столько бредовой информации, что плевался чуть ли ни на каждой строке...
Александр Ривилис вне форума  
 
Непрочитано 23.02.2020, 10:28
#24
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,048


Offtop:
Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
В этой статье столько бредовой информации, что плевался чуть ли ни на каждой строке...
это же вики, а не научное издание или официальное руководство) Да и для подавляющего большинства пользователей Акада и не нужна эта информация, имхо - они пользуются лишь готовыми решениями и шаблонными действиями, не углубляясь в технические дебри...
Сергей812 вне форума  
 
Непрочитано 24.02.2020, 21:18
#25
Zemlemer


 
Регистрация: 13.11.2017
Сообщений: 31


Здравствуйте! Еще вопрос про dcl. При переходе в новый диалог меняются введенный текст и исчезают значения переменных. Скажите, корректно ли обращаться так с диалогом и что я делаю с ним не так?

(action_tile "pipeD" "(setq pipeD (atof (get_tile \"pipeD\")))")
Zemlemer вне форума  
 
Непрочитано 24.02.2020, 21:53
1 | #26
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Вообще-то все будет зависеть от того, что происходит до вызова второго диалога. Данные сохранены? Тогда ставь set_tile. Нет? Тогда сохраняй.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.02.2020, 08:44
#27
Zemlemer


 
Регистрация: 13.11.2017
Сообщений: 31


Куда тут ставить Set_tile?
Заранее извиняюсь за глупые вопросы, но пока так и не понял, как работать с этими вот диалогами.
Вот так это выглядит сейчас:


Код:
[Выделить все]
  (defun	NVK ()

   (setq dcl_id (load_dialog "NVK.DCL"))


   (while (and (/= ddi 1) (/= ddi 0))
     (if (null (new_dialog "NVK" dcl_id))
       (exit)
     )

     (action_tile "settings" "(done_dialog 6)")
     (action_tile
       "pipeD"
       "(setq pipeD (atof (get_tile \"pipeD\")))"
     )
     (setq ddi (start_dialog))

     (cond ((= ddi 6)
	    (settings)
	   )
     )
   )
 )


 (defun	settings ()

   (if (null (new_dialog "settings" dcl_id))
     (exit)
   )

   (action_tile
     "scale"
     "(setq scale (atof (get_tile \"scale\")))"
   )

   (setq ddi (start_dialog))

   (unload_dialog dcl_id)

   (NVK)
 )

Последний раз редактировалось Кулик Алексей aka kpblc, 25.02.2020 в 09:01.
Zemlemer вне форума  
 
Непрочитано 25.02.2020, 10:39
#28
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,680


Цитата:
Сообщение от Do$ Посмотреть сообщение
Если использовать DCL, то можно как-то так:
или так... только вот для перевода фокуса нужно кликать 2 раза
Миниатюры
Нажмите на изображение для увеличения
Название: Gone_DCLing.gif
Просмотров: 47
Размер:	1.01 Мб
ID:	223415  
koMon вне форума  
 
Непрочитано 25.02.2020, 16:34
#29
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от koMon Посмотреть сообщение
или так...
Неужели это в DCL сделано?
Насколько я помню, там с картинками беда была. Можно было использовать только слайды.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 25.02.2020, 16:59
#30
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,680


Цитата:
Сообщение от Do$ Посмотреть сообщение
Неужели это в DCL сделано?
Насколько я помню, там с картинками беда была. Можно было использовать только слайды.
dcl, не только слайды.

----- добавлено через ~2 мин. -----
хотя сделать полноценную превьюшку блока вряд ли получится...
Миниатюры
Нажмите на изображение для увеличения
Название: DCL_Imaging.JPG
Просмотров: 32
Размер:	129.3 Кб
ID:	223443  
koMon вне форума  
 
Непрочитано 25.02.2020, 17:41
#31
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от koMon Посмотреть сообщение
не только слайды.
Я имел в виду, что нельзя вставить привычную картинку в виде png, bmp, jpg и т.п.
То, что можно векторами-отрезками рисовать - это "так себе" альтернатива...
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 25.02.2020, 17:56
#32
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,680


это вообще не альтернатива! это такие конкретные костыли! это же касается и слайдов! но разрабы ведь не собираются добавлять в традиционный в dcl ничего нового, поэтому что имеем, из того и лепим. какой уж dcl они там используют для своих окошек - неведомо)))
koMon вне форума  
 
Непрочитано 25.02.2020, 18:22
| 1 #33
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Do$ Посмотреть сообщение
Я имел в виду, что нельзя вставить привычную картинку в виде png, bmp, jpg и т.п.
То, что можно векторами-отрезками рисовать - это "так себе" альтернатива...
Много лет уже показываю, как навсегда избавиться от возни с DCL, при этом иметь все современные интерфейсные средства. Для сотен программ в итоге у меня оказались необходимыми всего несколько один раз и навсегда написанных диалогов:

1. Иллюстрированное древовидное меню с возможностью брать иллюстрации из чертежа или из любого окна или из буфера. Имеет наибольшее применение для чего угодно.
2. Выбор из списка.
3. Выбор из двух списков.
4. Ввод одной или двух строк (или чисел) с возможностями выбора из справочников и "взять в чертеже".
5. Отбор из списка с возможностью сортировки.

Научиться такое дело проще, чем разобраться с DCL. А для использования ничего не надо программировать, надо только обычным текстовым редактором править меню. При этом один диалог может использоваться и в других программах.
Миниатюры
Нажмите на изображение для увеличения
Название: xml_3d_pipe_support.png
Просмотров: 49
Размер:	21.1 Кб
ID:	223445  Нажмите на изображение для увеличения
Название: xml_tables_veddwg.png
Просмотров: 41
Размер:	13.4 Кб
ID:	223446  Нажмите на изображение для увеличения
Название: dlg_dwg_props.png
Просмотров: 40
Размер:	3.7 Кб
ID:	223447  Нажмите на изображение для увеличения
Название: dlg_get_two_number.png
Просмотров: 35
Размер:	6.1 Кб
ID:	223448  Нажмите на изображение для увеличения
Название: dlg_select_layouts_list.png
Просмотров: 40
Размер:	10.5 Кб
ID:	223449  

ShaggyDoc вне форума  
 
Непрочитано 27.02.2020, 22:04
#34
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Это в чём сделанные окошки? Вы, скорее всего, уже раз сто на этот вопрос отвечали. Но я забыл... Вид у них, конечно, не сказать, что современный. Сейчас "в моде" анимация, динамика, прозрачность, полупрозрачность, креативный дизайн, адаптация под темы оформления ОС и тд и тп... По новым "веяниям", привнесённым разработкой для Web и мобильных приложений, меняются правила "хорошего тона" при составлении диалогов. Например - не принято делать кнопки "Сохранить" и "Отменить". Подразумевается, что все изменения должны сразу автоматически сохраняться.
А так - да, согласен, что можно много взаимодействий с пользователем свести к этому списку диалогов.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)

Последний раз редактировалось Do$, 27.02.2020 в 22:10.
Do$ вне форума  
 
Непрочитано 27.02.2020, 22:13
#35
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Отвечу немного "наперед"
Delphi, регистрируемый COM-сервер, все дела...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.02.2020, 00:03
#36
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,048


Цитата:
Сообщение от Do$ Посмотреть сообщение
Вид у них, конечно, не сказать, что современный. Сейчас "в моде" анимация, динамика, прозрачность, полупрозрачность, креативный дизайн, адаптация под темы оформления ОС и тд и тп... По новым "веяниям", привнесённым разработкой для Web и мобильных приложений, меняются правила "хорошего тона" при составлении диалогов. Например - не принято делать кнопки "Сохранить" и "Отменить". Подразумевается, что все изменения должны сразу автоматически сохраняться.
ничто сейчас не мешает запихать в сборку dll интерфейс на WPF со всеми эти красотами (обернув в Lisp подобные функции) и загрузив эту сборку в акад, вызывать прямо из кода lisp как обыкновенную функцию.
Сергей812 вне форума  
 
Непрочитано 28.02.2020, 07:17
#37
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
ничто сейчас не мешает запихать в сборку dll интерфейс на WPF со всеми эти красотами (обернув в Lisp подобные функции) и загрузив эту сборку в акад, вызывать прямо из кода lisp как обыкновенную функцию.
Конечно. Тем более, что вариантов уже не один. А если кому нужны "свистелки-перделки", так все диалоги изменяют свой вид в зависимости от версии Windows и установленной темы оформления.

Цитата:
Сообщение от Do$ Посмотреть сообщение
Например - не принято делать кнопки "Сохранить" и "Отменить".
У кого это "не принято"? Если пользователю надо выбрать что-то в диалоге, то какое изменение должно сразу сохраняться? Должна быть возможность именно выбрать с закрытием диалога (ОК) или просто его закрыть, ничего не выбрав.

Ну да, можно и здоровенных иконок наделать, где не надо. А где надо покрупнее - наоборот, унаследовать микроскопический навигатор БД, как у мелкософта и заставлять напрягать зрение.

Вот когда работаем с БД, так там для приложения в целом, нет пунктов Сохранить или Отменить - всё автоматом. Но для редактирования одной записи непременно есть и Применить и Отменить.

Вот из-за того, что "привнесено из WEB" одной из самых популярных услуг является замена Win10 на нормальные ОС.
ShaggyDoc вне форума  
 
Непрочитано 28.02.2020, 10:44
#38
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
ничто сейчас не мешает запихать в сборку dll интерфейс на WPF со всеми эти красотами (обернув в Lisp подобные функции) и загрузив эту сборку в акад, вызывать прямо из кода lisp как обыкновенную функцию.
А не подскажите готовые решения для людей знакомых с ЛИСП но и только. Для которых регистрация DLL и вызов серверов не совсем тривиальная задача. Решения с готовыми библиотеками и кодом на лисп с вызовом окон, передачей и получением данных.
Diman111 вне форума  
 
Непрочитано 28.02.2020, 11:15
#39
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Готовые решения только самостоятельно. dcl, callback-функции, вызывающие функции, обработка контролов и т.д.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.02.2020, 15:08
#40
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,048


Цитата:
Сообщение от Diman111 Посмотреть сообщение
А не подскажите готовые решения для людей знакомых с ЛИСП но и только. Для которых регистрация DLL и вызов серверов не совсем тривиальная задача. Решения с готовыми библиотеками и кодом на лисп с вызовом окон, передачей и получением данных.
Ну регистрация DLL и вызов серверов для того, что предлагал выше - не требуется: это не внешний COM-сервер. Но придется изучить азы программирования на .Net - как накидать мышкой контролы на форму (чтобы сделать похоже на диалоги от ShaggyDoc), как организовать хранение данных. Затем почитайте документ de211-2.pdf "Communication between AutoLISP functions and .NET functions" от Аутодеска (он, правда, на английском языке).

Т.е. суть какая - хранение и выбор данных на внешних носителях пишется и отлаживается в бесплатной студии вообще отдельно от акада - а потом переносите отлаженные формы и сопутствующий код в проект сборки *.dll, оборачивая в вызов функций .Net с атрибутом LispFunction. Код на лиспе получает сразу готовые значения из возвращаемого значения функции .Net, а в аргументах этой же функции ResultBuffer args можно передать исходные значения для инициализации начального состояния диалогов - см. de211-2.pdf.

Можете конечно сразу и в WPF сунуться вместо WinForms, но там изначально не настолько прозрачно для понимания - цена за гибкость технологии)
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Поле для ввода данных в DCL-окно

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощью LISP нарисовать окно линиями? Aндрeй LISP 13 24.06.2011 14:37
Связь данных в поле автокад Илья М. Программирование 2 11.02.2011 11:43
ГОСТ 21.1101-2009. Как правильно оформить изменения на листе общих данных? Pavel13 Прочее. Архитектура и строительство 3 21.11.2010 21:26
Текстовое окно не появляется при нажатии F2 Боныч AutoCAD 3 09.04.2008 16:21
Окно ввода аттрибутов блока. Как убрать? Pave1 AutoCAD 7 15.06.2007 14:13