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

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

Возможно ли такое в DCL и лиспе

Ответ
Поиск в этой теме
Непрочитано 31.08.2018, 13:52
Возможно ли такое в DCL и лиспе
protorgovec
 
газо- нефтепереработка
 
Уфа
Регистрация: 22.07.2015
Сообщений: 98

Добрый день. Подскажите, возможно ли вообще такое. Если да, то подскажите как.
Есть одно диалоговое окно:
Код:
[Выделить все]
 KolichestvoNaimenovaniiShtycerov: dialog {label = "Количество наименований штуцеров"; // название диалогового окна

    : spacer{height=1;} // вставка пустой строки

    : boxed_row {

    : row {
    : text {label = "Количество строк в таблице штуцеров"; alignment = centered;}
    : edit_box {key = "KolNaimShtyc"; edit_width=5;}
    }
    }
    
    : spacer{height=1;}   // вставка пустой строки

    ok_cancel;   // добавление кнопок ОК и Отмена
}  // окончание диалога
Вызываю его:
Код:
[Выделить все]
 (setq dcl_filename_full "U:\\Автоматизация проекта\\Lisp\\Проект колонны\\Корпус колонны\\Количество наименований штуцеров.dcl"
              fs_dcl_id (load_dialog dcl_filename_full)
              KolNaimShtyc "0"
    )
        (if (not fs_dcl_id)
            (progn
                (alert "Ошибка загрузки DCL файла!")
                (exit)
            )
            (progn
                (if (not (new_dialog "KolichestvoNaimenovaniiShtycerov" fs_dcl_id))
                    (progn
                        (alert "Ошибка загрузки DCL файла!")
                        (exit)
                    )
                    (progn
                        (action_tile "OK" "(done_dialog 1)")
                        (action_tile "Cancel" "(done_dialog 2)")
		        (action_tile "KolNaimShtyc" "(setq KolNaimShtyc $value)")
                        (setq diag_result (start_dialog))
                        (unload_dialog fs_dcl_id)
		        (setq KolNaimShtyc (atoi KolNaimShtyc))
                    ) 
                )
            )
        )
И есть второе диалоговое окно
Код:
[Выделить все]
 TablicaShtycerov : dialog {
                label = "Таблица штуцеров"; //название диалогового окна
                
                //первый блок
                    : boxed_row {
                            height = 2;
                                    width = 10;
                                    : text  {
                                            label = "Обозначение";
                                            width = 12;
                                            alignment = centered;
                                            }
                                    : text_part {
                                            label = "Наименование";
                                            width = 40;
                                            alignment = centered;
                                            }
                                    : text_part {
                                            label = "Количество";
                                            width = 10;
                                            alignment = centered;
                                            }
                                    : text_part {
                                            label = "Dy, мм";
                                            width = 10;
                                            alignment = centered;
                                            }
                                    : text_part {
                                            label = "Py, МПа";
                                            width = 10;
                                            alignment = centered;
                                            }
                                    : text_part {
                                            label = "Вылет";
                                            width = 10;
                                            alignment = centered;
                                            }
                                            }
                          
//второй блок
                    : boxed_row {
                            height = 2;
                            : row {
                                    : edit_box {
                                            key = "ShtycerOboznachenie";
                                            edit_width = 12;
                                            alignment = centered;
                                            list = "";
                                             }
                                    : edit_box {
                                            key = "ShtycerNaimenovanie";
                                            edit_width = 40;
                                            alignment = centered;
                                            list = "";
                                             }
                                    : edit_box {
                                            key = "ShtycerKolichestvo";
                                            edit_width = 10;
                                            list = "";
                                             }
                                    : edit_box {
                                            key = "ShtycerDy";
                                            edit_width = 10;
                                            list = "";
                                             }
                                    : edit_box {
                                            key = "ShtycerPy";
                                            edit_width = 10;
                                            list = "";
                                             }
                                    : edit_box {
                                            key = "ShtycerVilet";
                                            edit_width = 10;
                                            list = "";
                                             }
                                             }
                                             }
                              
                    ok_cancel;
            }
Вызов для него
Код:
[Выделить все]
 (setq dcl_filename_full "U:\\Автоматизация проекта\\Lisp\\Проект колонны\\Корпус колонны\\Таблица штуцеров.dcl"
              fs_dcl_id (load_dialog dcl_filename_full)
              ShtycerOboznachenie "0"
              ShtycerNaimenovanie "0"
              ShtycerKolichestvo "0"
              ShtycerDy "0"
              ShtycerPy "0"
              ShtycerVilet "0"
    )
        (if (not fs_dcl_id)
            (progn
                (alert "Ошибка загрузки DCL файла!")
                (exit)
            )
            (progn
                (if (not (new_dialog "TablicaShtycerov" fs_dcl_id))
                    (progn
                        (alert "Ошибка загрузки DCL файла!")
                        (exit)
                    )
                    (progn
                        (action_tile "OK" "(done_dialog 1)")
                        (action_tile "Cancel" "(done_dialog 2)")
		        (action_tile "ShtycerOboznachenie" "(setq ShtycerOboznachenie $value)")
		        (action_tile "ShtycerNaimenovanie" "(setq ShtycerNaimenovanie $value)")
		        (action_tile "ShtycerKolichestvo" "(setq ShtycerKolichestvo $value)")
		        (action_tile "ShtycerDy" "(setq ShtycerDy $value)")
		        (action_tile "ShtycerPy" "(setq ShtycerPy $value)")
		        (action_tile "ShtycerVilet" "(setq ShtycerVilet $value)")
                        (setq diag_result (start_dialog))
                        (unload_dialog fs_dcl_id)
		        (setq ShtycerKolichestvo (atoi ShtycerKolichestvo))
		        (setq ShtycerDy (atoi ShtycerDy))
		        (setq ShtycerPy (atof ShtycerPy))
		        (setq ShtycerVilet (atoi ShtycerVilet))
                    ) 
                )
            )
        )
Вопрос такой. Во втором диалоговом окне, один блок для ввода данных.
Возможно ли сделать, что бы при вводе в первом диалоговом окне количества строк, например 10, во втором диалоговом окне появлялись 10 блоков для ввода данных.
И так далее.
Можно конечно сделать кучу вариантов DCL, и прописать условия ,что если в первом окне ввели 5, то открываем DCL где 5 блоков для ввода.
Но может есть иной вариант!
Заранее благодарю!

Последний раз редактировалось protorgovec, 31.08.2018 в 13:55. Причина: Есть ошибки
Просмотров: 10141
 
Непрочитано 06.09.2018, 10:40
#61
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


в WPF также как и в WinForms можно создавать окошки мышкой и не глядя на XAML
trir вне форума  
 
Непрочитано 06.09.2018, 11:15
#62
Сергей812


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


Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
в WPF также как и в WinForms можно создавать окошки мышкой и не глядя на XAML
можно любую технологию испоганить - действительно, зачем придумали стили, шаблоны и т.п. в XAML - когда можно просто мышкой накидать компоненты с палитры..
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Возможно ли такое в DCL и лиспе

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реконструкция подвала при свайных фундаментах, возможно такое решение? Наиль Основания и фундаменты 2 20.09.2013 10:43
Уменьшение теплоносителя после прогрева, возможно ли? vikkiners Отопление 2 24.07.2013 12:57
А возможно ли такое!??! Вопрос нефтяникам и буровикам Botan Разное 5 21.09.2009 20:12
XML и LISp - Такое возможно? Diman111 LISP 3 03.03.2008 19:06
Возможно сделать такое перекрытие? Alexcons_2 Конструкции зданий и сооружений 3 08.01.2008 14:45