Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/47: Рейтинг темы: голосов - 47, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9

Семисегментный индикатор

11.06.2012, 00:11. Показов 8946. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, нужна помощь, задали курсовую сделать Семисегментный индикатор и там должны загораться светодиоды в зависимости от поступающего значения.
Помогите кто чем сможет, буду очень благодарен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.06.2012, 00:11
Ответы с готовыми решениями:

Часы с цифровым семисегментный индикатором Borland c++
Помогите сделать семисегментные часы в Borland (нет опыта работы в билдере) Есть вариант рабочий программы консольного приложения ...

Изобразить на экране электронные часы с цифровым семисегментный индикатором
Изобразить на экране работающий электронные часы с цифровым семисегментный индикатор. (с использованием библиотеки graphics.h)

Индикатор Gauge
Как делать это?? С помощью Gauge или ProgressBar

20
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.06.2012, 00:15
Индикатор железный или софтовый? Опишите подробнее задачу.
1
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9
11.06.2012, 00:22  [ТС]
Дело вот в чем, группой делаем программу типо протеуса на с++билдере6, каждый делает свою часть программы. Вот мне и дали семисегментный индикатор, т.е. он скорее софтовый. В него поступает какото двоичное число и должны загореться определенные светодиоды(десятичное число) в программе
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.06.2012, 00:40
ну вот, когда в него "поступает какое-то двоичное число" - и закрашивайте "определенные светодиоды (десятичное число)" или что там у вас в виде диодов, в желаемый цвет, например, лайм, в чем проблема ?

а проблема в том, что -
скорее софтовый
- так не бывает, индикатор или железный, управляемый из программы, или железный, не управляемый из программы, или полностью программный индикатор, отображающийся на мониторе и не имеющий никакого отнощения к светодиодам и прочим железо-скобяным изделиям
0
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9
11.06.2012, 00:56  [ТС]
А как это реализовать? Заранее сделать условие при вводе двоичного числа закрашивать светодиоды?
и в чем лучше сделать прорисовку в GDI или через canvas?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.06.2012, 01:16
в вашем случае достаточно канвас или обычных Image, я думаю

самая примитивная схема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int a,b,c,d,e,f,g;
if(a==0) {
  Image1->Canvas->Brush = clBlack; // или как там задается цвет, не помню
}
else if(a==1) {
  Image1->Canvas->Brush = clLime;
}
if(b==0) {
  Image2->Canvas->Brush = clBlack; // или как там задается цвет, не помню
}
else if(b==1) {
  Image2->Canvas->Brush = clLime;
}
{
// и т.д.
}
как вы получаете a,b,c,d,e,f,g - уже другая история, для демонстрации можно рандомно, ну и гламурнее использовать switch=case, нежели if

как-то-так
0
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9
11.06.2012, 01:24  [ТС]
А ну ясно, я просто зациклился на том что индикатор должен быть одним целым, можно же и вправду сделать несколько image.
Спасибо!
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.06.2012, 01:29
можно же и вправду сделать несколько image.
Ну вообще то коряво, лучше вообще компонент на основе TImage сделать.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.06.2012, 01:36
да можно просто на канвасе ректангликов понарисовывать
Краткое руководство по работе с классом TCanvas для начинающих
а вот зачем на каждый случай компонент, когда можно обойтись одной не очень заумной функцией, я никогда не понимал
0
 Аватар для T2skler
50 / 50 / 6
Регистрация: 16.05.2012
Сообщений: 232
11.06.2012, 01:40
C++
1
2
3
4
5
6
7
8
9
10
void Light(unsigned int State) {
    Form1->Image1->Canvas->Brush->Color = Form1->Color;
    Form1->Image1->Canvas->FillRect(Rect(0, 0, Form1->Image1->Width, Form1->Image1->Height)); // закрашиваем цветом формы
    Form1->Image1->Canvas->Pen->Color = State*100000;
    Form1->Image1->Canvas->Ellipse(Rect(10, 10, 20, 20));
}
 
void __fastcall TForm1::Button1Click(TObject * Sender) {
    Light(1); // число от 0 до 7
}
1
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9
11.06.2012, 01:41  [ТС]
а вот н-р на вход поступает двоичное число, его нужно перевести в десятичное, и если это число 5 то присваиваем к примеру a,c,d,f=1 и закрашиваем эти светодиоды в нужный цвет???
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.06.2012, 01:41
я никогда не понимал
Ну во первых на будующее...
Во вторых как никак многомодульность ( учитывая еще то что проект разрабатывает не один человек)
1
 Аватар для T2skler
50 / 50 / 6
Регистрация: 16.05.2012
Сообщений: 232
11.06.2012, 02:00
Хотя мне нравится более настраиваемый вариант.
C++
1
2
3
4
5
6
7
8
9
10
11
12
TColor colors[] = {clRed, clLime, clYellow, clBlue, clAqua, clFuchsia, clBlack};
 
void Light(unsigned int State) {
    Form1->Image1->Canvas->Brush->Color = Form1->Color;
    Form1->Image1->Canvas->FillRect(Rect(0, 0, Form1->Image1->Width, Form1->Image1->Height)); // закрашиваем цветом формы
    Form1->Image1->Canvas->Pen->Color = colors[State];
    Form1->Image1->Canvas->Ellipse(Rect(10, 10, 20, 20));
}
 
void __fastcall TForm1::Button1Click(TObject * Sender) {
    Light(3);
}
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.06.2012, 02:22
Можно просто загружать соответствующий рисунок в Image
Изображения
 
1
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9
11.06.2012, 21:08  [ТС]
Спасибо конечно же, но возможно ли это реализовать с помощью GDI, и поступающее значение в виде двоичного числа, его нужно вывести на сегмент в виде десятичного, вот пример кода для прорисовки самого индикатора?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.06.2012, 22:22
Вы бы варианты не ждали , лениво потягивая пивко, а брали то, что уже есть, и делали помаленьку свой индикатор, советуясь по ходу, если что не получается.

Ну и с помощью GDI вам что реализовать ? Заливку, закраску, рисование буковки ? Картину маслом ?

Поискать способы конвертации Bin To Int самому тоже западло ?

Добавлено через 3 минуты
А пока вот - идите читайте про свой gdi раз , gdi два
gdi три ... дальше сам .
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.06.2012, 06:00
"Многомодульность" в три юнита вылилась
Изображения
 
Вложения
Тип файла: rar Индикатор.rar (273.8 Кб, 83 просмотров)
0
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9
12.06.2012, 17:31  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
"Многомодульность" в три юнита вылилась
совсем не то что нужно


Тему можно закрывать, все что нужно сделал
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
12.06.2012, 17:39
совсем не то что нужно
А что не так?
0
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 9
12.06.2012, 18:26  [ТС]
Цитата Сообщение от stepan070793 Посмотреть сообщение
Спасибо конечно же, но возможно ли это реализовать с помощью GDI, и поступающее значение в виде двоичного числа, его нужно вывести на сегмент в виде десятичного, вот пример кода для прорисовки самого индикатора?
!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2012, 18:26
Помогаю со студенческими работами здесь

лампочка-индикатор)
подскажите, есть ли в борланде такой компнент как индикатор (типо такого, как на сайте показывает в сети человек или нет). необходимо три...

Cделать индикатор загрузки
Добрый день! Дабы успокоить предполагаемого пользователя во время работы программы хочу сделать индикатор завершения операции. ...

Семисегментный индикатор
Здравствуйте! Помогите написать программу к курсовому на тему:"Семисегментный индикатор, разработать программу и устройство чтоб зажигался...

Семисегментный индикатор
Здравствуйте.У меня было задание создать прошивку для семисегментного индикатора от 0 до F,для этого прилагалась вот такая методичка,где...

Семисегментный индикатор
Нашел у себя в барахле три светодиодных панельки от старого то ли китайского то ли совкового калькулятора: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru