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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Диалоговые окна (DCL-файлы)

Диалоговые окна (DCL-файлы)

Ответ
Поиск в этой теме
Непрочитано 23.05.2005, 17:19 #1
Диалоговые окна (DCL-файлы)
maxw
 
Сообщений: n/a

В DCL-файлах можно создать:
- строку "радио-кнопок" ("boxed_radio_row")
- столбик "радио-кнопок" ("boxed_radio_column").

А можно ли создать матрицу "радио-кнопок" (например 3х3)?

Набор строк или столбиков не подходит, т.к. кнопка должна быть выбрана одна, а в 3-х столбиках (например) их выбирается соответственно 3 штуки.
Спасибо.
Просмотров: 3852
 
Непрочитано 23.05.2005, 19:05
#2
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Боюсь что придется писать окно на ВБА или еще на чем.
А на ДиСиЭль - я такого не знаю.
Pilot вне форума  
 
Непрочитано 23.05.2005, 20:07 Re: Диалоговые окна (DCL-файлы)
#3
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от maxw
А можно ли создать матрицу "радио-кнопок" (например 3х3)?
Да (не изящно, но можно):

Код:
[Выделить все]
(defun dcldemo (/ _diafile _dialog l1 l2 l3)
  (if (setq _diafile (load_dialog "dcldemo.DCL"))
    (progn (if (setq _dialog (new_dialog "radio_array" _diafile))
             (progn (setq l1 '("K21" "K22" "K23" "K31" "K32" "K33")
                          l2 '("K11" "K12" "K13" "K31" "K32" "K33")
                          l3 '("K11" "K12" "K13" "K21" "K22" "K23")
                    )
                    (action_tile "K11" (vl-prin1-to-string '(mapcar (function radio_en) l1)))
                    (action_tile "K12" (vl-prin1-to-string '(mapcar (function radio_en) l1)))
                    (action_tile "K13" (vl-prin1-to-string '(mapcar (function radio_en) l1)))
                    (action_tile "K21" (vl-prin1-to-string '(mapcar (function radio_en) l2)))
                    (action_tile "K22" (vl-prin1-to-string '(mapcar (function radio_en) l2)))
                    (action_tile "K23" (vl-prin1-to-string '(mapcar (function radio_en) l2)))
                    (action_tile "K31" (vl-prin1-to-string '(mapcar (function radio_en) l3)))
                    (action_tile "K32" (vl-prin1-to-string '(mapcar (function radio_en) l3)))
                    (action_tile "K33" (vl-prin1-to-string '(mapcar (function radio_en) l3)))
                    (start_dialog)
             )
           )
           (unload_dialog _diafile)
    )
  )
  (princ)
)

(defun radio_en (radio) (set_tile radio ""))
DCL файл
Код:
[Выделить все]
radio_array :dialog {
label = "Demo Dialog";
	:column {
		:boxed_row {
			label = "Radio Array";
			:radio_column {
				key = "C1";
				:radio_button {
					key = "K11";
				}
				:radio_button {
					key = "K12";
				}
				:radio_button {
					key = "K13";
				}
			}
			:radio_column {
				key = "C2";
				:radio_button {
					key = "K21";
				}
				:radio_button {
					key = "K22";
				}
				:radio_button {
					key = "K23";
				}
			}
			:radio_column {
				key = "C3";
				:radio_button {
					key = "K31";
				}
				:radio_button {
					key = "K32";
				}
				:radio_button {
					key = "K33";
				}
			}
		}
		ok_button;
	}
}
Alaspher вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Диалоговые окна (DCL-файлы)