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

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

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

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

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

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

Т.е. хочешь - вводи свои данные, хочешь - выбирай
из предварительной наборки.
__________________
Счастливо, Алексей!
Просмотров: 7187
 
Непрочитано 21.02.2020, 07:34
#2
Кулик Алексей aka kpblc
Moderator

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


list_box ?

----- добавлено через 9 сек. -----
popup_list ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.02.2020, 09:25
#3
koMon


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


не бывает такого
koMon вне форума  
 
Непрочитано 21.02.2020, 10:11
#4
Кулик Алексей aka kpblc
Moderator

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


А, точно, не бывает... Забыл уже (
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.02.2020, 14:18
#5
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 465


В смысле - "не бывает" ?

Autodesk, если мне склероз не изменяет, декларирует,
что все стандартные окна Автокада написаны на DCL.

Команда: _DSETTINGS

Далее вкладка "Отслеживание", "Полярные углы", "Шаг углов".

Вот такое поле и нужно.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 21.02.2020, 14:23
| 1 #6
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Autodesk, если мне склероз не изменяет, декларирует,
что все стандартные окна Автокада написаны на DCL
Где это он такое, интересно, декларирует? Это явно не так.
skkkk вне форума  
 
Непрочитано 21.02.2020, 14:30
#7
Do$

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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
Autodesk, если мне склероз не изменяет, декларирует,
что все стандартные окна Автокада написаны на DCL.

Возможно, когда-то давно так и было.
Сейчас это не так, конечно же.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Автор темы   Непрочитано 21.02.2020, 14:47
#8
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 465


Ну, как вариант, просто два поля edit_box и popup_list зрительно расположены рядом.

И при выборе чего-нибудь в popup_list этот выбор ставится в edit_box .

Упс! Хотел одной строкой обойтись…

Не, не получается.

Список всё равно не в виде единичной стрелочки,
а в виде широкого поля выглядит.
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 21.02.2020 в 14:55.
===AAA=== вне форума  
 
Непрочитано 21.02.2020, 15:34
#9
Сергей812


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


Offtop:
Цитата:
Сообщение от skkkk Посмотреть сообщение
Где это он такое, интересно, декларирует? Это явно не так.
ну если посмотреть в википендии
Цитата:
Написана на AutoLISP[d], Visual Basic и C++
Сергей812 вне форума  
 
Непрочитано 21.02.2020, 15:41
#10
Кулик Алексей aka kpblc
Moderator

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


===AAA===, по-моему, заставить код реагировать на ввод символа в текстовое поле dcl-диалога невозможно. Хотел бы ошибиться.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.02.2020, 15:49
#11
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 465


Не, идея в другом.

Сперва выбираешь из раскрывающегося списка, оно в качестве
значения по-умолчанию подставляется в текстовое поле рядом.
Хочешь - оставляешь, хочешь - заменяешь на любое своё.

Но, видимо, овчинка выделки не стоит...
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 21.02.2020, 16:12
#12
koMon


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


так можно, легко
koMon вне форума  
 
Непрочитано 21.02.2020, 17:37
#13
Do$

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


Если использовать DCL, то можно как-то так:
Миниатюры
Нажмите на изображение для увеличения
Название: img-2020-02-21-17-36-06.png
Просмотров: 83
Размер:	30.4 Кб
ID:	223376  
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 21.02.2020, 17:57
#14
Кулик Алексей aka kpblc
Moderator

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


Do$, в чем рисовал? )))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.02.2020, 19:03
#15
Семёныч


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Offtop:
Цитата:
Сообщение от skkkk
Где это он такое, интересно, декларирует? Это явно не так.
ну если посмотреть в википендии
Цитата:
Написана на AutoLISP[d], Visual Basic и C++
Где здесь упоминание про язык DCL?
Семёныч вне форума  
 
Непрочитано 21.02.2020, 22:30
#16
Сергей812


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


Offtop:
Цитата:
Сообщение от Семёныч Посмотреть сообщение
Где здесь упоминание про язык DCL?
в AutoLisp есть другие встроенные технологии создания диалогов?)
По факту, думаю, что ядро изначально писалось на С/С++, а вот интерфейсная часть сначала неизвестно на чем.. WTL, MFC, Windows Forms, WPF появились позже первых версий акада.
Сергей812 вне форума  
 
Непрочитано 22.02.2020, 09:20
#17
ShaggyDoc

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
думаю, что ядро изначально писалось на С/С++, а вот интерфейсная часть сначала неизвестно на чем.
Известно на чем - на том же языке. Никаких "вижуальных" средств ведь не было, в теле программы надо было описывать всё - позиционирование, рамки элементов, цвета, движения мыши, обработку нажатия клавиш и вообще всё.

И даже если в названии присутствовало "Vision" никакой визуализации не было. Просто можно было использовать заранее заготовленные формы в модулях. И так во времена DOS работали на всех языках - C, C++, Pascal, Clipper, Basic. Пока не произошел переход на Windows и не появились визуальные редакторы.

Появление DCL в R12 для Автолиспа было весьма прогрессивным делом, до этого диалоговые окна приходилось делать в других системах. Но средства DCL весьма примитивны и все это безнадежно устарело.

Нет никакого смысла за них держаться.
ShaggyDoc вне форума  
 
Непрочитано 22.02.2020, 09:49
#18
Семёныч


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


Если уж вспомнили древние версии AutoCAD, то не мешало бы вспомнить и файлы acad.dcl и base.dcl.
Конечно, все это безнадежно устарело. Как и сам AutoCAD. IMHO.
Семёныч вне форума  
 
Непрочитано 22.02.2020, 11:48
#19
Сергей812


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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
позиционирование, рамки элементов, цвета, движения мыши, обработку нажатия клавиш и вообще всё.
за движение мыши драйвер мыши отвечал, наверно, все таки.. а вот взаимодействие низкоуровневое с драйвером мыши через регистры было полностью на совести программиста... Зато программист фактически полностью управлял ресурсами напрямую в MS-DOS, а сейчас в современных языках типа того же .Net его пускают резвиться в выделенной песочнице управляемого кода за счет увеличения потребляемых ресурсов - зато безопасно для других приложений.
Сергей812 вне форума  
 
Непрочитано 22.02.2020, 12:35
#20
ShaggyDoc

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
за движение мыши драйвер мыши отвечал, наверно, все таки.. а вот взаимодействие низкоуровневое с драйвером мыши через регистры было полностью на совести программиста...
Вот несколько примеров по работе с мышкой:

Код:
[Выделить все]
  procedure SaveMousePos;
  begin
    if MouseInstalled then begin
      MX := MouseWhereX;
      MY := MouseWhereY;
    end;
  end;

  procedure RestoreMousePos;
  begin
    if MouseInstalled then
      MouseGotoXY(MX, MY);
  end;

 function Sign(X : Integer) : Integer;
    {-Clamp integer to range -1..+1}
  begin
    if X < 0 then
      Sign := -1
    else if X > 0 then
      Sign := +1
    else
      Sign := 0;
  end;

  function ReadKeyMouseXY : Word;
    {-ReadKeyWord with mouse buttons mapped to <Enter> and <Esc>}
  const
    {Keys to return for various mouse directions}
    ArrowKeys : array[-1..1, -1..1] of Word =
    {DX=-1  DX=0   DX=+1}
    (($4700, $4800, $4900),  {DY = -1}
      ($4B00, $FFFF, $4D00), {DY = 0}
      ($4F00, $5000, $5100)); {DY = +1}
  var
    KW : Word;
    MW : Word;
    InitMX : Byte;
    InitMY : Byte;
    Xdel : Integer;
    Ydel : Integer;
  begin
    SetMickeyToPixelRatio(16, 32);
    InitMX := MouseWhereX;
    InitMY := MouseWhereY;
    KW := $FFFF;
    repeat
      if KeyPressed then
        KW := ReadKeyWord
      else if MousePressed then begin
        MW := MouseKeyWord;
        if MW = MouseLft then
          KW := $1C0D
        else if MW = MouseRt then
          KW := $011B;
      end else begin
        Xdel := Integer(MouseWhereX)-InitMX;
        Ydel := Integer(MouseWhereY)-InitMY;
        if Abs(Xdel) > 2*Abs(Ydel) then
          Ydel := 0
        else if Abs(Ydel) > 2*Abs(Xdel) then
          Xdel := 0;
        KW := ArrowKeys[Sign(Ydel), Sign(Xdel)];
      end;
    until KW <> $FFFF;
    ReadKeyMouseXY := KW;
    SetMickeyToPixelRatio(8, 16);
  end;
Это всего лишь мышка, а далее надо было отслеживать, например её перевод на поле вводы или еще куда.
И это надо было делать в каждой программе. В современных средах программирования ничем подобным и не надо заниматься.
ShaggyDoc вне форума  
Ответ
Вернуться   Форум 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