Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > Помогите! Пишу нужную прогу! |
Автор: Дмитрий 20.1.2004, 17:36 |
Я создаю программу для моделирования и отладки цифровых схем на отечественной элементной базе... Да ну и ладнно![]() У меня появилась проблема: 1 На экране есть рабочее поле (PictureBox) на него должны ставится изображения деталей. Но после того, как пользователь их поставил в нужное ему место и поставил другой, надо иметь возможность передвинуть или переставить, а может и удалить первый. То есть надо как то хранить где какие картинки стоят или как это вообще то делать? 2 Как копировать содержимое одного пикчебокса в другой, в нужное мне место? |
Автор: Skywalker 20.1.2004, 22:58 |
Дмитрий, ты коненчно извени, но вопроса я не понял. Попробуй его переформулировать? |
Автор: cardinal 21.1.2004, 14:08 |
В принципе все понятно. я бы на твоем месте работал с элементами типа кнопок. некоторые кнопки будут трансисторами, некоторые ресисторами и т.д. На ниx ты уже налепишь картинки какие xочешь. Помоему так проще чем работать с PictureBox'ами и мучатьса с .bmp'шками. Иx ты потом не передвинуть не удалить по простому не сможешь. Надо чтобы детали были обектами, а не рисунками, тогда будет все понятно и схеми записывать можно будет не только в графическом, но и в обычном текстовом формате. |
Автор: Дмитрий 22.1.2004, 13:41 |
Да, я думал над тем, чтоб это сделать обьектами, но проблема в том, что они должны не просто так быть на форме, они должны соединяться своимы выводами с помощью линий. Можно конечно рисовать линии и на форме, но это неудобно. Дело в точ, что прога не просто для рисования схем, а еще и для отладки! Т. е. она должна знать что с чем соеденино и что есть что, чтобы потом по алгаритму проверить схему на работоспособность и т.д. Эта програ- как монтажный стол. Собираешь схемку и смотришь как она будет работать. Для этого там есть всякие приборы. Если кому интересно (впервую очередь обращаюсь к тем кто занимается электроникой и может осознать пользу от этой проги, ведь для того, что бы быть уверенным, что схема работает надо всего то собрать ее виртуально и ести все хорошо ставь эту схему хоть на производство!) |
Автор: Vach 22.1.2004, 15:12 |
Ну для производства тебе нужно создать разводку печатной платы, посчитать индуктивность и наводки проводников, просчитать температурную динамику под разными нагрузками ... А вообще поставь себе "workbenc" и копируй его интерфейс. Там вроде всё удачно реализовано. На счет объектов я согласен, нужно создать контрол черпающий информацию из элементной базы (размеры и рисунок пиктограммы, координаты ножек(для пиктограммы)...) А после только загружай новые экземпляры в массив да свойства меняй. Интерфейсная часть хоть и противная - но выполнимая, у меня такой вопрос: как ты хроник элементы и связи, и как эта модель общитывается? |
Автор: Дмитрий 23.1.2004, 12:58 |
Дело в том, что эта прога (моя) будет расчитывать пока только цифровые схемы без обратных связей. Применяться будет в основном для проектирования дешифраторов для процессорных систем. Ну конечно и еще много для чего. Workbenc- имеет америкосскую элементную базу (раз америкосскую, значит самую тупую). А вообще для расчета аналоговых схем существуют формулы, а раз они есть значит можно сделать прогу. |
Автор: Vach 23.1.2004, 16:19 |
Это понятно, и упрощает задачу. ![]() Прошлый вопрос остается открытым - будет дальнейшее обсуждение? (Нужнали помощь? И какая?) |
Автор: Дмитрий 24.1.2004, 15:16 |
Vach, та наверно знаешь прогу Splan для черчени принципиальных схем. Так вот я хотел бы сделать подобное по интерфейсу рабочего окна. Ты не знаешь что там у них пикчебокс или что то другое. И как вообще сделать что то подобное. Вот уж не думал, что в этой проге (моей) самое сложное будет интерфейс. Я демал алгоритм отладки. А ты что электроникой занимаешься? Какой? |
Автор: Vach 27.1.2004, 03:20 |
С Splan`ом я не знаком. ![]() По интерфейсу думаю так: Все должно выгладить как можно более сухо и академично. Именно как принципиальная схема, а не кнопочки и лейбочки... Поэтому я думаю ты картинками и занялся, вот только события на картинки отслеживать трудно (хотя можно через кривые и API - но это изврат и самоцель). Могу предложить вариант: Создай контрол "Элемент" который должен: Менять ширину и высоту, быть частью коллекции, отлавливать и передавать события в единый модуль обработки, менять картинку, иметь зоны прилипания (можно ДрагДропом) для соединительных линий, иметь поле под номинал и марку.... (по ходу создания будет больше) И контрол "Соединение" : для простоты он должен иметь возможность "прилипать" к контактам "Элементов" и отрисовывать соединительную линию под прямыми углами. Также нужны точки спайки для соединений один к многим. Но это всё теория, которая с трудом (отладка будет сложна) реализуется. Все это должно формировать базу (мат модель) элементов и их взаимодействий, на основании которой будет обрабатываться схема. Вот я и возвращаюсь к вопросу... Как ты это собираешься хранить и обрабатывать? В результате пользователь, составил схему и в программе имеются компоненты хранимые в массиве или коллекции: Номер1 "Элемент питания" Контакт 1 >> Номер2.Контакт 1 Контакт 2 >> Номер3.Контакт 2 параметры(.....) Номер2 "Кнопка" Контакт 1 >> Номер1.Контакт 1 Контакт 2 >> Номер3.Контакт 1 параметры(.....) Номер3 "Лампа" Контакт 1 >> Номер2.Контакт 2 Контакт 2 >> Номер1.Контакт 2 параметры(.....) Это самый простой пример, как его считать? Нарыть пример конкретно совпадающий с твоей задачей трудно, так как это будет уже почти исходник. ![]() Тут конкретный вопрос нужен, ты ведешь свой проект и реши что и как, увидь всю проблему. Кстати – пользовательский интерфейс это много! А вообще все выше сказанное офтоп, или далее?. ![]() Схемки я паял разные и компики свои пытал ими, да только толку мало вышло. Аибо спаять не могу. Удачи. |
Автор: ~FoX~ 27.1.2004, 09:32 |
Ну для начала создай какое нить рабочее поле (можно даже пикчербокс) Равномерно разметь на нем точки или квадратики как угодно......это будут дырочки на плате.... Далее нужно выяснить сколько контактов у элемента помещаемого на плату...... Берешь 1-ю ножку и ставишь её на одну из тоточек......... Берешь 2-ю ножку и ставишь её на другую тоточку.........и т.д. Ты имеешь пару - тройку - четверку координат......... Считаешь сиридину и помещаешь туда контрол какой нить (коммандбаттон например) ......нужного размера и с нужно картинкой. Хотя на самом деле проще два-три собственных компанента написать со свойствами типа размеры, кол-во ножек, цвет, картинка и необхадимыми физическими параметрами......сразу лишаешь себя огромной кучи гемор№я Кстати вместо пикчербокса проще использовать какой нить грид.......в нем координа считать удобнее! Могу написать примерчек проги твоей простенький, но на делфях у мя счаз нету доступа к ВБ |