Перейти к содержимому


Возможности DCL

lisp

Сообщений в теме: 9

#1 sandymen

    Посетитель

  • Пользователи
  • PipPip
  • 27 сообщений
  • Пол:Мужчина

Отправлено 14 Январь 2014 - 13:13

А что собственно поддерживает DCL? В SDK только четыре простейших примера. На сайте и в хелпе ничего не нашел. На лисп хоть есть список функций. Не могу вывести на экран вот такое окошко:
ddsetup : dialog {
    label = "Формат листа";
	  : boxed_radio_column {
		  label = "Параметры вставки";
		  : radio_button {
		    label = "Вставить лист и настроить чертеж";
//		    mnemonic = "LS";
		    key = "ListAndSet";
		  }
		  : radio_button {
		    label = "Только вставить лист";
//		    mnemonic = "IL";
		    key = "InsertList";
		  }
		  : radio_button {
		    label = "Только настроить чертеж";
//		    mnemonic = "SD";
		    key = "SetDrawing";
		  }
	    : popup_list {
		  label = "Масштаб:";
		  key = "lscale";
		  edit_width = 24;
//		  mnemonic = "S";
	    }
	  }
	  : boxed_column {
		  label = "Лист";
	    : radio_row {
		  : radio_button {
		    label = "Первый лист";
//		    mnemonic = "p1";
		    key = "page1";
		    is_enabled=false;
		  }
		  : radio_button {
		    label = "Следующий лист";
//		    mnemonic = "p2";
		    key = "page2";
		    is_enabled=false;
		  }
	    }
	    : popup_list {
		  label = "Формат:";
		  key = "format";
		  edit_width = 24;
//		  mnemonic = "f";
		  is_enabled=false;
	    }
	    : radio_row {
		  : radio_button {
		    label = "Горизонтальный";
//		    mnemonic = "h";
		    key = "hor";
		    is_enabled=false;
		  }
		  : radio_button {
		    label = "Вертикальный";
//		    mnemonic = "V";
		    key = "ver";
		    is_enabled=false;
		  }
	    }
	    : toggle {
		  label = "Только рамка";
//		  mnemonic = "B";
		  key = "bonly";
		  is_enabled=false;
	    }
	    : spacer { width = 2; }
	    : text {
		  key = "disp";
		  value = "xy";
		  width = 30;
		  is_enabled=false;
	    }
	    : toggle {
		  label = "Указать точку вставки";
//		  mnemonic = "bp";
		  key = "basepoint";
		  is_enabled=false;
	    }
	  }
	  : boxed_radio_column {
		  label = "Настройки чертежа";
	    : edit_box {
		  label = "Ширина полилинии:";
//		  mnemonic = "W";
		  key = "lwid";
		  edit_width = 5;
		  edit_limit = 10;
		  is_enabled=false;
	    }
	    : toggle {
		  label = "Настроить размерные стили";
//		  mnemonic = "DS";
		  key = "DimStyle";
		  is_enabled=false;
	    }
	    : toggle {
		  label = "Настроить текстовые стили";
//		  mnemonic = "TS";
		  key = "TextStyle";
		  is_enabled=false;
	    }
	  }
    ok_cancel;
}
Вызываю диалог кодом, передранным с helloworld.lsp:
(defun qqq ()
  (setq dcl_id (load_dialog "DDSETUP.DCL"))
  (new_dialog "ddsetup" dcl_id)
  (start_dialog)
  (unload_dialog dcl_id)
)
(defun c:qqq ()
  (qqq)
)
Сначала нанокад ругался на mnemonic, ну закомментировал. Теперь нанокад молча чего-то делает, но на экран ничего не выводит. Подозреваю, что не выполняется какой-то из элементов диалога, но какой именно не понятно.
Если больше ничего не помогает - прочти инструкцию.

#2 sandymen

    Посетитель

  • Пользователи
  • PipPip
  • 27 сообщений
  • Пол:Мужчина

Отправлено 15 Январь 2014 - 11:46

Проблема оказалась в : boxed_radio_column {, заменил на : boxed_column {, никакой разницы в плане оформления диалога.

Кстати, а чего цвет у диалога такой похабный, можно как-нибудь поменять на текущую цветовую схему в виндах?
Если больше ничего не помогает - прочти инструкцию.

#3 ISL

    Клуб разработчиков

  • nanoSoft
  • PipPipPipPip
  • 362 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:Разработка САПР

Отправлено 16 Январь 2014 - 15:07

Задача о выводе цивилизованного сообщения о том, что DCL директива не реализована, записана в багтрекере Клуба разработчиков под номером #100.

О списке реализованных директив подумаем.

Цветовую схему изменить со стороны внешнего приложения нельзя, о текущей цветовой схеме подумаем, пожелание #139 в Клубе разработчиков.
Пишешь приложения под САПР на С++, .NET, COM, Lisp? Вступай в Клуб разработчиков nanoCAD.

#4 gomer

    Посетитель

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 08 Март 2014 - 01:29

Почему бы не перевести надписи кнопок ok_cancel с технического английского на удобоваримый русский? ;)

#5 lastloch

    Новичок

  • Пользователи
  • Pip
  • 4 сообщений

Отправлено 26 Май 2014 - 14:32

Подскажите пожалуйста как "залить" изображение на IMAGE и IMAGE_BUTTON dcl файла. Пытался использовать Lisp функцию SLIDE_IMAGE - ,безрезультатно.

#6 lastloch

    Новичок

  • Пользователи
  • Pip
  • 4 сообщений

Отправлено 27 Май 2014 - 08:33

Пример DCL файла:

imag : dialog {
label = "Рисунок-кнопка";
: image_button {
key = "nad1_110";
height =10;
}
ok_cancel;
}
}

Lisp для загрузки этого DCL:

(defun c:im ()
(setq dcl (load_dialog "imag.dcl"))
(new_dialog "imag" dcl)
(setq x (dimx_tile "nad1_110")
y (dimy_tile "nad1_110")
) ;_ конец setq
(start_image "nad1_110")
(slide_image 0 0 x y "РИСУНОК????")
(end_image)
(start_dialog)
(unload_dialog dcl)
) ;_ конец defun

Кто подскажет-что должно быть вместо слова РИСУНОК???? и в каком формате?
Интерпретатор проглатывает функцию (slide_image 0 0 x y "РИСУНОК????") и не ругается, но на кнопке рисунок не отображается. Пробовал подсовывать рисунки типа SLD, BMP, PNG, TIF, GIF, JPG - безрезультатно. Диалоговое окно появляется, а рисунка на кнопке нет.

#7 ISL

    Клуб разработчиков

  • nanoSoft
  • PipPipPipPip
  • 362 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:Разработка САПР

Отправлено 27 Май 2014 - 20:52

Функция SLIDE_IMAGE не реализована. Записал в багтрекере Клуба разработчиков пожелание #163.
Пишешь приложения под САПР на С++, .NET, COM, Lisp? Вступай в Клуб разработчиков nanoCAD.

#8 lastloch

    Новичок

  • Пользователи
  • Pip
  • 4 сообщений

Отправлено 28 Май 2014 - 08:33

Тогда вопрос - а как можно показать картинку или что-либо нарисовать на DCL компонентах IMAGE_BUTTON и IMAGE?
Если есть такие объекты, значит на них может быть какое-то изображение?

Сообщение отредактировал lastloch: 28 Май 2014 - 08:37


#9 ISL

    Клуб разработчиков

  • nanoSoft
  • PipPipPipPip
  • 362 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:Разработка САПР

Отправлено 28 Май 2014 - 19:44

Увы, не реализована вся подгруппа *_image. Расширил описание пожелания #163 в багтрекере Клуба разработчиков.
Пишешь приложения под САПР на С++, .NET, COM, Lisp? Вступай в Клуб разработчиков nanoCAD.

#10 lastloch

    Новичок

  • Пользователи
  • Pip
  • 4 сообщений

Отправлено 11 Июнь 2014 - 10:41

А вот еще вопрос: можно ли задать первоначальное положение окна DCL? Допустим я хочу, чтобы окно выпадало не в центре экрана, а в левом верхнем углу?





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей