Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дремучий лес обработчиков формы 
:(
    Опции темы
semibug
Дата 7.10.2011, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 27.3.2009

Репутация: нет
Всего: нет



Новичок в NET и вообще в оконном программировании.
Проект на  C++/CLI (VS2005)
Создал форму с кнопочками-меню в дизайнере, двойными кликами нагенерировал события.
Бизнес функцию приложение выполняет, но беспокоит концентрация кода в одном файле (Form1.cpp), затруднена навигация, читаемость.
Вопросы:
1. Как сделать более читаемым код.
2. Какие есть удобные способы навигации по методам большого класса, расположенного в одном файле.
3. Некоторые функции дублируются в меню и на тулбаре, можно ли както их связать, а не сводить к одному действию через дополнительный метод.
PM   Вверх
Cheloveck
Дата 7.10.2011, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(semibug @  7.10.2011,  10:39 Найти цитируемый пост)
1. Как сделать более читаемым код.

Прочесть книгу "Чистый код"
Цитата(semibug @  7.10.2011,  10:39 Найти цитируемый пост)

2. Какие есть удобные способы навигации по методам большого класса, расположенного в одном файле.

Прочесть книгу "Чистый код". Больших классов быть не должно!
Цитата(semibug @  7.10.2011,  10:39 Найти цитируемый пост)
3. Некоторые функции дублируются в меню и на тулбаре, можно ли както их связать, а не сводить к одному действию через дополнительный метод. 

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

Это сообщение отредактировал(а) Cheloveck - 7.10.2011, 13:01


--------------------
user posted image
PM Jabber   Вверх
semibug
Дата 7.10.2011, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 27.3.2009

Репутация: нет
Всего: нет



Цитата(Cheloveck @  7.10.2011,  13:00 Найти цитируемый пост)
Больших классов быть не должно!

В этом то и проблема, а как его уменьшать, если кнопок и меню большое кол-во не могу представить. Ну кроме как вручную создавать классы - контейнеры, но тогда теряется возможность использования визуального редактирования.

Добавлено через 2 минуты и 12 секунд
Цитата(Cheloveck @  7.10.2011,  13:00 Найти цитируемый пост)
Естесственно, ты можешь назначить и элементу меню, и кнопке тулбара один и тот же обработчик. Это можно и из дизайнера сделать.

В исходном сообщении не полностью выразил свою мысль, хотелось бы управлять и кнопкой и пунктом меню как одним объектом, например включать/выключать одновременно. Понмю в Delphi были такие компоненты, вроде Action, через которые можно было централизовано отключить кнопку и пункт меню например.
PM   Вверх
Cheloveck
Дата 7.10.2011, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(semibug @  7.10.2011,  15:25 Найти цитируемый пост)
теряется возможность использования визуального редактирования

Никогда не пользуюсь дизайнерами. Они много гадят в коде. Могу, разве что, подсмотреть, что он генрит в спорных ситуациях, например в лейаутах. Но в конечных продуктах весь код написан вручную.

Цитата(semibug @  7.10.2011,  15:25 Найти цитируемый пост)
управлять и кнопкой и пунктом меню как одним объектом

Создай такой объект =) Если серьёзно, чем очевиднее у тебя будет код, тем меньше проблем ты получишь при его сопровождении. То есть метод DisableItem(SomeID id), в котором ты деактивируешь конпку и пункт меню будет гараздо лучше, чем когда ты где-то в одном месте свяжешь объекты в один...


--------------------
user posted image
PM Jabber   Вверх
semibug
Дата 8.10.2011, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 27.3.2009

Репутация: нет
Всего: нет



Cheloveck, спасибо.
Избавляюсь от дизайнера.
Также помогло раскидывание обработчиков по разным файлам  в виде partial классов.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.