Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Подпрограммы и окна.  (Прочитано 33911 раз)
0 Пользователей и 11 Гостей смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #30 : 14-07-2010 14:50 » 

Цитата
private: //типа из вашей статьи не сама такая умная.
  HANDLE hCom;  
это типа инкапсуляция называется Ага

Кстати, точку с запятой после классов забываешь.

По вопросу: непонятно. То ли описание классов, то ли выдранные из классов функции. Лучше русскими словами расскажи задачу Улыбаюсь

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

Записан

ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #31 : 15-07-2010 05:11 » 

Ага, инкапсуляция . От одного слова дурно становится, а всего-навсего по-русски можно сказать, что скрытая от публики ,в данном случае, переменная.
В вопросе - это не кусок проги, а попытка проиллюстрировать задачу, с кот. пока не справилась.
По-русски :
1.Создала класс MyComPort, куда загнала все ф-ции работы с прибором.
2.Основной диалог с меню обращается к этому классу  MyComPort и всё ОК!
3.В одном из пунктов этого меню вызывается ещё один диалог,с многими настройками.
  В этом втором диалоге я обращаюсь к тем же ф-циям класса MyComPort и НЕОК!

НО! Когда я перед вызовом второго диалога закрываю порт, а в нём открываю заново, то
получила,что нужно было.
А хотелось бы, что порт был открыт всё время работы программы.

Странно то,что в измененном приложении Pr,кот. минимизированный вариант моей пр-мы, это получилось( порт открыт всё время и все диалоги работают)
Мне кажется, что опять тот же вопрос о неумении работы с классами.
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 15-07-2010 06:11 » 

ann_nef, расскажи, а зачем ты "засунула" в MyComPort все функции работы с прибором?

А вдруг тебе понадобится работать с другим прибором? И там будут другие функции?
Будешь писать новый класс?

Пример.
У тебя есть класс приборов, который работает с 485-м интерфейсом (почти ком-порт), но протоколы связи между приборами разные.
Будешь писать класс под каждый прибор?

Изучаем НАСЛЕДОВАНИЕ.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #33 : 15-07-2010 06:52 » 

Ага, инкапсуляция . От одного слова дурно становится, а всего-навсего по-русски можно сказать, что скрытая от публики ,в данном случае, переменная.

Есть такое слово - "профессионализмы". И их надо знать.

А хотелось бы, что порт был открыт всё время работы программы.

А если открывать порт всегда? В каждом диалоге? Только в ф-ции открытия порта сначала проверять, если порт ещё не открыт, то открыть, а если открыт, то просто звершить ф-ю.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #34 : 15-07-2010 07:03 » 

Джон, так и сделаю. И у Алексея в статье так же.

И классы разделю , не всё сразу.

Ага, профессионализьмы! Или переводчики профлит-ры делают кальку с английского, не находя в своём лексиконе русских аналогов.
Знать будем, обязательно :  инкапсуляция и полиморфизм - столпы ООП.
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #35 : 15-07-2010 07:06 » 

....И классы разделю

Не откладывай на завтра то, что нужно было сделать вчера
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #36 : 15-07-2010 07:26 » 

Ага, профессионализьмы! Или переводчики профлит-ры делают кальку с английского, не находя в своём лексиконе русских аналогов.

Ага, например "файл", "принтер", "компьютер", "монитор", "дисплей" и тд. Ага Выучить и привыкнуть гораздо проще, чем придумывать сложные русские эквиваленты. Представь, каждый раз когда тебе нужно употребить слово инкапсуляция, ты будешь говорит: "свойство языка программирования, позволяющее объединить и защитить данные и код в объект и скрыть реализацию объекта от пользователя (прикладного программиста)." Ага

ann_nef, в тему.

Ты нариосвала схему твоей программы?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #37 : 15-07-2010 08:19 » 

В  процессе рисования. Я всё время рисую, иначе в старой пр-ме не разобраться.

свойство языка программирования, позволяющее объединить и защитить данные и код в объект и скрыть реализацию объекта от пользователя Вот это очень понятно. Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #38 : 15-07-2010 08:22 » 

А глянуть можно?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #39 : 15-07-2010 08:40 » 

1.Создала класс MyComPort, куда загнала все ф-ции работы с прибором.
2.Основной диалог с меню обращается к этому классу  MyComPort и всё ОК!
3.В одном из пунктов этого меню вызывается ещё один диалог,с многими настройками.
  В этом втором диалоге я обращаюсь к тем же ф-циям класса MyComPort и НЕОК!

НО! Когда я перед вызовом второго диалога закрываю порт, а в нём открываю заново, то
получила,что нужно было.
А хотелось бы, что порт был открыт всё время работы программы.
А чем вызвана потребность давать рулить портом из второго диалога? И если такая потребность реально существует, и по-другому никак  - может, этому второму диалогу при инициализации отдавать тот же объект порта?
Порт ведь по сути один-единственный, и соответственно представлен единственным объектом в каждый момент времени. И тогда ничто не мешает (точнее, не вижу, что могло бы помешать) всем нуждающимся работать с этим общим объектом, не захватывая и не освобождая ресурс для других нуждающихся на каждый чих.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #40 : 15-07-2010 09:32 » 

Вад, собственно говоря, я на это же "намякивал да намякивал" в #8. Ага Просто ей приходится решать сразу кучу проблем одновременно: и Студия, и ООП, и порт. Как там у классика: "На нашу долю выпало большое счастье и... раздавило её." (с)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #41 : 15-07-2010 10:32 » 

Ань, забудь на время про диалоги - напиши классы без диалогов. Диалоги - это только для общения с пользователем, их потом отдельно напишешь
Записан

ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #42 : 23-11-2010 07:56 » 

Джон и Алексей, возвращаюсь к этой теме. Многое за эти месяцы поняла о чем вы летом оба говорили.
Я о классах и тд в своей задаче. Но, хотелось бы услышать вашу критику сейчас, когда я собираю окончательный вариант.
Задача: многоэтапное тестирование прибора,подключенного через СОМ порт к компу.
Излагаю моё решение по классам:
1. Класс этапа - текстовая инструкция( включить, подключить внешние уст-ва,заглушки и тд)
                 функция - непосредственно тест
                 текстовое описание завершения удачного
                 текстовое описание завершения с ошибкой(описание возможной неисправности)
2. Класс работы с прибором - чтение-запись в ПЛИС
                             обмен с микроконтроллером
                             запуск ЦАП и АЦП и тд
3. Класс работы с СОМ портом - инициализация
                               открытие-закрытие
                               чтение-запись байта


Добавлено через 3 минуты и 38 секунд:
Ай, не дописала предыдущий пост.

Тест из класса Этап использует функции класса Работы с прибором, а он в свою очередь ф-ции Работы с портом.

Так или не так?
« Последнее редактирование: 23-11-2010 08:00 от ann_nef » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #43 : 23-11-2010 08:05 » 

а алгоритм ? Сами по себе классы как-то ничего не объясняют, если честно
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #44 : 23-11-2010 09:24 » new

Эммм... 3. - практически ОК, я бы ещё добавил установку/считывание параметров порта.

Если имеется ввиду, что 2. не работает непосредственно с железом, а только подготавливает данные (вот это смутило: "чтение-запись в ПЛИС, обмен с микроконтроллером"), то тоже правильно. Т.е. этот класс отвечает за подготовку данных и спец. команд, которые будут отправлены к устройству, уже в формате данных и команд устройства. А так же могут быть приняты от устройства и расшифрованы.

Ну и 1. Это насколько я понял симулятор работы с устройством. Нууу его логику сложно анализировать, незная специфики прибора. Хотя я думаю, там всё должно быть однозначно.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines