|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
А заполнить надо будет всё равно один или все сто?
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Стеклоалюминий Регистрация: 23.11.2012
Санкт-Петербург
Сообщений: 67
|
Да, все сто и получить список размеров. Подразумевается, что в каждом edit box имеется значение по умолчанию и сто раз вводить числа не придется. Вообще я сейчас копаю в сторону дот нет. Там такое сделать можно, только вот не соображу пока как.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
А почему не хотите, действительно, сделать DCL окошко на 10 полей ввода, а потом просто вызывать нужное количество раз, вверху писать типа "21-30" и вызывать нужное количество раз. В дотнете пользователь тоже "замахается" вводить 100 значений подряд - неужели все значения одинаковы по смыслу или есть какие то группы?
|
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Вроде в этой теме да и в других решили, что DCL - это громадный шаг назад
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
|
||||
Стеклоалюминий Регистрация: 23.11.2012
Санкт-Петербург
Сообщений: 67
|
Цитата:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
если значения связаны в группы-то получиться что-то типа мастера: ввели общие данные, нажали далее - появилось новое окно со следующей группой входных данных и т.д. Ну, или действительно переписывайте в сторону NETAPI - если не жалко будет времени, потраченного на текущий вариант программы.
----- добавлено через ~20 мин. ----- Ну смотря на чем писать будете диалоги - если на WinForm, то можно использовать тот же TabControl. Если WPF - то там вообще принцип матрешки: элементы внутри контейнеров. |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Цитата:
Написал их достаточное количество, поэтому небольшой опыт для сравнения с тем вариантом, что я показывал есть. Одна диагностика введенной информации во внешней программе чего стоит! Ну раз DCL для этого не случая не преступление, ваяй! Вариантов размножения текст-боксов много, сам предлагал да и коллеги подсказывали. Найди причинно-следственную связь ввода инфы, сделай контроль её ввода и тоже будет не плохо. Я вот попытался выполнить с помощью DCL выполнить то окно ввода значений кол. и значений шагов. Получилось ИМХО вполне компактно.
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... Последний раз редактировалось Alan, 07.03.2015 в 15:46. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Замечу, что помимо чисто визуального контроло-кидательства необходима еще и обработка данных, их хранение, контроль безошибочного ввода.
Вся работа с данными прекрасно решается при использовании баз данных (любого формата), которых форумчане почему-то боятся. Использование связей таблиц "master-detail" легко позволяет организовать любую иерархию информации. Ну и другие визуальные компоненты для отображения данных, которые есть во всех системах разработки, но нет в DCL. |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Цитата:
Пытался я >romabrew в п.106 и 127 объяснить это, он вроде загорелся. Но!... получилось как у многих юзеров: "Я так привык!"
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
|
||||
Стеклоалюминий Регистрация: 23.11.2012
Санкт-Петербург
Сообщений: 67
|
Цитата:
Код:
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Поподробнее - это практически любое руководство по любой СУБД: таблицы, связи типа "один-к одному" / "один-ко многим" / "многие-ко многим", запросы, отчеты и т.п. Добро пожаловать в мир SQL
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
И если уж решили переходить на Net - то подумайте, стоит ли тащить за собой основную программу на lisp. Поддержка взаимодействия между старым lisp кодом и внедряемыми net-функциями может оказаться "дороже", чем переписать код. Благо "дружелюбность" редактора той же Visual Studio Express в несколько раз повышает скорость написания кода.
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
На самом деле для начала всё гораздо проще, тем более что в современных средах программирования значительная часть кода делается автоматом, а сложнейший функционал просто спрятан в компонентах. А примером того, как не надо делать является весьма популярная на форуме программа «Прокат» Василия Кондрата. Она делает простые, но учень нужные всем вещи - разрезы прокатных профилей. Потому и популярна. Но организована безобразно. Но замечу, что претензий к автору нет - когда-то, где-нибудь в AutoCAD R10 (т.е. 25 лет назад) делать можно было если не совсем так, то примерно так - не было инструментальных средств. Хотя и тогда можно было использовать БД. 1. Для такой программы нужны данные - размеры профилей, которые бывают разных видов (уголки, двутавры и т.д.). Причем возможно появление новых видов. У Кондрата данные хранятся в текстовых dat-файлах в виде ЛИСП-списков, наподобие Код:
2. Здесь достоинство в том, что такой список с помощью Лисп можно прочитать и сразу "разложить" по переменным. Но при этом надо абсолютно точно знать, что скрывается за каждым номером элемента списка. 3. Для каждого вида профиля имеется своя функция рисования в отдельном файле, а также "главная" программа, которая формирует списки для вывода в диалог с возможностью последующего выбора функции рисования. При этом в тексте программы зашиты полные имена профилей, которые непременно должны абсолютно точно соответствовать данным, хранящимся отдельно в файлах. Структура "главной" программы сожна и запутана - не зря её много лет "колхозом" корректируют. 4. Еще нужны и иллюстрации к профилям. Они сделаны в виде "слайдов" (которые еще надо сделать) и помещены в библиотеку (которую надо собрать). Надо еще программно и безошибочно показать нужный слайд. Ну и так далее. А как можно было бы сделать: 1. Создать файл базы данных, например формата MDB от MS Access. С помощью самой Access создать несколько таблиц: а)Виды проката с полями ID, NAME, IMAGE, NOTE и LISP. В поле ID - уникальный номер, NAME - название вида профиля, NOTE - какое-нибудь длинное описание, IMAGE - растровая картинка, а LISP - имя функции рисования. б) Профили для каждого вида проката с его данными. Теми, которые необходимы и для рисования сечений и для разных расчетов. При этом не дублировать информацию, т.е. не писать в одном поле число 55.0, а в другом поле "b = 55 мм". Немного пошевелив мозгами можно придумать и единую структуру данных для всех видов проката, т.е. значительно упростить работу. 2. Разработать в подходящей любимой (у каждого может быть своя) среде программирования программу (диалоговое окно) и для редактирования данных и для выбора данных. В этой программе должны быть установлены связи между таблицами Виды проката и Профили по ключевым полям. В результате может быть два отопбражаемых списка - Вид проката и Профиль. При выделении Вида проката в одном списке отображаются Профили, относящиеся только к этому виду. Будет показана и картинка, и подробное описание. И все это можно "на лету" редактировать. Можно, для упрощения работы, сделать кнопку Редактор, по которой отображаются все поля и допускается их изменение, или отображаются только основные данные. Здесь самое главное, что для работы с данными можно использовать компоненты классов TDataSet и TDataSource, а для отображения и редактирования данных - любые визуальные компоненты, связываемые с DataSource - навигаторы, сетки, деревья, отдельные поля. Программа сразу умеет двигаться по данным, безошибочно их редактировать, искать, фильтровать и многое другое. Не надо писать ни строчки кода. 3. Такой "диалог" запускается из LISP-программы известными способами. При выборе нужного профиля диалог закрывается, а в LISP возвращается имя функции рисования и список данных. Lisp, благодаря своим фундаментальным возможностям, выполняет функцию с заданным именем и с переданными данными. Разумеется, такая функция в этот момент должна быть определена, например в библиотеке. Это общая упрощенная схема. Эти же данные могут использоваться не только для рисования, но и для расчетов в других программах. И даже вообще вне Автокада. Освоение таких технологий даст безграничные возможности. А время на это надо будет потратить меньше, чем на мучения с ублюдочным DCL. Его время закончилось одновременно с появлением еще Windows-95. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
На Access часто экономят при покупке офиса. Наглядный пример - одна российская фирма (имени называть не буду во избежание рекламы) выпустила для продвижения своей продукции расчетную программу для расстановки оборудования. И, не долго думая, влепили БД на Аccess. Прошел год - и вышла новая версия программы, которая для своей работы уже не требовала Access - т.е. к ним поступила далеко не единичное замечание от пользователей по этому поводу. Иначе они бы и не "чесались")
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Для работы необходим "движок" Jet, который распространяется Microsoft бесплатно. Но и это только если захочется работать с БД через механизмы ADO. Например, чтобы прямо из LISP выполнить SQL-запрос и получить данные вообще без лишних посредников. Но можно и работать через компоненты прямого доступа к MDB. Вообще-то есть разные локальные БД, в том числе гораздо быстрее и удобнее MDB. Я, например, использую Absolute Database - она просто встраивается в программу, не имеет никаких "движков", DLL, хранит любые виды данных и полностью совместима с SQL. Но это уже вопросы религии - кто "продал душу дьяволу" (т.е. Microsoft) на такое пойтить не может. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
Если имеется в виду эта БД, то там есть
Цитата:
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
А для большинства MDB подойдет. Только надо с умом использовать, и применять более удобные инструменты разработчика, которые тоже имеются бесплатные. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
А ну-ка скриншот. Может быть в какой-то последней версии. Только не надо путать конструктор SQL-запроса, из которого можно потом скопировать выражение (это есть) с обычным окном текстового редактора, в который можно вписать что угодно и выполнить.
Вот такое окно - непременный элемент всех (кроме Access) программ класса "database desktop". Именно с его помощью можно делать любые "чудеса" с базами данных. А MS Access - программа для "конечных" пользователей, и, по мнению Microsoft, им это не надо. Пусть, мол, кнопки жмут, да "мастерами" пользуются. А еще и создает в MDB кучу ненужных служебных таблиц, раздувающих базу. Потому сторонние программисты и пишут множество заменителей Access. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание графика в AutoCAD на основе txt или xls файла | Red Nova | Программирование | 116 | 06.04.2017 09:20 |
AutoCad MEP. Структура проекта. Создание розеточной сети. | serg01 | Вертикальные решения на базе AutoCAD | 3 | 04.03.2008 13:22 |
Создание своего шаблона в AutoCAD 2007 | RodiXX1 | AutoCAD | 2 | 05.08.2007 23:58 |
Одна из целей: Создание экспертных систем на базе AutoCAD. | Сергей Юрьевич | Программирование | 9 | 01.01.2005 15:17 |