Jump to content

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


Recommended Posts

А что собственно поддерживает 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, ну закомментировал. Теперь нанокад молча чего-то делает, но на экран ничего не выводит. Подозреваю, что не выполняется какой-то из элементов диалога, но какой именно не понятно.

Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

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

Link to comment
Share on other sites

Пример 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 - безрезультатно. Диалоговое окно появляется, а рисунка на кнопке нет.

Link to comment
Share on other sites

Функция SLIDE_IMAGE не реализована. Записал в багтрекере Клуба разработчиков пожелание #163.

Link to comment
Share on other sites

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

Если есть такие объекты, значит на них может быть какое-то изображение?

Edited by lastloch
Link to comment
Share on other sites

Увы, не реализована вся подгруппа *_image. Расширил описание пожелания #163 в багтрекере Клуба разработчиков.

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
Share on other sites

  • 8 years later...

Добрый день. Есть ли продвижение по реализации SLIDE_IMAGE?

Пытаемся перейти с Автокада на Нанокад. Есть ряд примочек работающих с Lisp - DCL и использующие подгруппу *_image.

Проведена ли какая-то работа в этом направлении с 2014 года? 

Link to comment
Share on other sites

  • 2 weeks later...

Сугубо ИМХО: чем пытаться что-то сотворить на dcl, да без возможности отладки, да не имея представления как оно будет выглядеть - уж лучше сразу на NET переходить. Ну или по-жесткому - на плюсы ;)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...