Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Помогите! Пишу нужную прогу!


Автор: Дмитрий 20.1.2004, 17:36
Я создаю программу для моделирования и отладки цифровых схем на отечественной элементной базе... Да ну и ладнноsmile.gif

У меня появилась проблема:
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
Это понятно, и упрощает задачу. smile.gif
Прошлый вопрос остается открытым - будет дальнейшее обсуждение? (Нужнали помощь? И какая?)

Автор: Дмитрий 24.1.2004, 15:16
Vach, та наверно знаешь прогу Splan для черчени принципиальных схем. Так вот я хотел бы сделать подобное по интерфейсу рабочего окна. Ты не знаешь что там у них пикчебокс или что то другое. И как вообще сделать что то подобное. Вот уж не думал, что в этой проге (моей) самое сложное будет интерфейс. Я демал алгоритм отладки. А ты что электроникой занимаешься? Какой?

Автор: Vach 27.1.2004, 03:20
С Splan`ом я не знаком. sad.gif
По интерфейсу думаю так:
Все должно выгладить как можно более сухо и академично. Именно как принципиальная схема, а не кнопочки и лейбочки... Поэтому я думаю ты картинками и занялся, вот только события на картинки отслеживать трудно (хотя можно через кривые и API - но это изврат и самоцель).
Могу предложить вариант:
Создай контрол "Элемент" который должен:
Менять ширину и высоту, быть частью коллекции, отлавливать и передавать события в единый модуль обработки, менять картинку, иметь зоны прилипания (можно ДрагДропом) для соединительных линий, иметь поле под номинал и марку.... (по ходу создания будет больше)
И контрол "Соединение" : для простоты он должен иметь возможность "прилипать" к контактам "Элементов" и отрисовывать соединительную линию под прямыми углами. Также нужны точки спайки для соединений один к многим.
Но это всё теория, которая с трудом (отладка будет сложна) реализуется. Все это должно формировать базу (мат модель) элементов и их взаимодействий, на основании которой будет обрабатываться схема. Вот я и возвращаюсь к вопросу... Как ты это собираешься хранить и обрабатывать?
В результате пользователь, составил схему и в программе имеются компоненты хранимые в массиве или коллекции:

Номер1
"Элемент питания"
Контакт 1 >> Номер2.Контакт 1
Контакт 2 >> Номер3.Контакт 2
параметры(.....)

Номер2
"Кнопка"
Контакт 1 >> Номер1.Контакт 1
Контакт 2 >> Номер3.Контакт 1
параметры(.....)

Номер3
"Лампа"
Контакт 1 >> Номер2.Контакт 2
Контакт 2 >> Номер1.Контакт 2
параметры(.....)

Это самый простой пример, как его считать?

Нарыть пример конкретно совпадающий с твоей задачей трудно, так как это будет уже почти исходник. smile.gif

Тут конкретный вопрос нужен, ты ведешь свой проект и реши что и как, увидь всю проблему.

Кстати – пользовательский интерфейс это много!

А вообще все выше сказанное офтоп, или далее?. smile.gif
Схемки я паял разные и компики свои пытал ими, да только толку мало вышло.
Аибо спаять не могу.
Удачи.

Автор: ~FoX~ 27.1.2004, 09:32
Ну для начала создай какое нить рабочее поле (можно даже пикчербокс)
Равномерно разметь на нем точки или квадратики как угодно......это будут дырочки на плате....
Далее нужно выяснить сколько контактов у элемента помещаемого на плату......
Берешь 1-ю ножку и ставишь её на одну из тоточек.........
Берешь 2-ю ножку и ставишь её на другую тоточку.........и т.д.
Ты имеешь пару - тройку - четверку координат.........
Считаешь сиридину и помещаешь туда контрол какой нить (коммандбаттон например) ......нужного размера и с нужно картинкой.

Хотя на самом деле проще два-три собственных компанента написать со свойствами типа размеры, кол-во ножек, цвет, картинка и необхадимыми физическими параметрами......сразу лишаешь себя огромной кучи гемор№я

Кстати вместо пикчербокса проще использовать какой нить грид.......в нем координа считать удобнее!

Могу написать примерчек проги твоей простенький, но на делфях у мя счаз нету доступа к ВБ

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)