Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 01:28   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Менеджер Листов

Последнее время я "терроризировал" местных гуру по разным вопросам. Настало время представить на их суд, что у меня получилось. Хотелось бы услышать мнения и советы по оптимизации.
Содержимого тестовой книги пугаться не стоит, это ядерный коктейль из пары курсовиков и диплома образца пятилетней давности.
На данные момент выявлены следующие проблемы в решении которых мне нужна помощь:
1. в режиме запуска формы vbModeless, происходит вылет на сточке (из-за этого в этом режиме нельзя управлять деревом): ActiveWorkbook.VBProject.VBComponen ts(ЛистИмяЕсть).Name = ЛистИмя
При обычном запуске, все нормально. Проблема высокой критичности!
2. Работа с Application.OnTime не отличается гладкостью, и есть ряд проблемы при редактирование кода в VBA. В эхе упоминали о ином похожем способе. Было бы интересно узнать подробности.
3. Кнопки не отличаются красотой... Можно ли использовать стандартные картинки для меню?
4. Тормоза при обновлении treeview. Как можно оптимизировать код?
5. Как обновлять форму при переходах между книгами, без адаптации книг.

В развитие идеи:
1. Сделать форму по настройке. Доработать существующие элементы.
2. Добавить возможность изменять размер формы.
3. Попробовать делать прозрачным не всю форму. а только фон treeview.
4. Добавить возможность задавать цвет фона для названия узлов. Хотя как мне сейчас видеться, удастся сделать только стандартные 8 цветов.
5. Запоминать значения параметров настроек между запусками excel.
Вложения
Тип файла: rar Менеджер листов.rar (268.2 Кб, 34 просмотров)
С уважением, Алексей.

Последний раз редактировалось tae1980; 30.01.2011 в 10:48.
tae1980 вне форума Ответить с цитированием
Старый 30.01.2011, 09:23   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Если уж была проведена такая работа над созданием проекта, видимо был в этом какой-то глубинный смысл.
Но вот выбор листов...
Как-то давно нашел код такого вот менеджера. К сожалению не знаю автора.
ИМХО он намного удобнее.
Применил не раз в своих проектах, выкладывал здесь на форуме тоже.
Вложения
Тип файла: zip МенеджерЛистов_1.zip (15.3 Кб, 48 просмотров)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.01.2011, 10:24   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Если уж была проведена такая работа над созданием проекта, видимо был в этом какой-то глубинный смысл.
Но вот выбор листов...
Вопрос не в выборе листов, а в структурировании информации (в своей работе (бытность аспиранта) я ввел термин "управление информацией", и активно пользуюсь термином "информационные потоки"). Я задыхаюсь без нее. (В какой-то мере это можно рассматривать как научную работу. :))
В приведенных листах видно, что все таблицы размещены по диагонали, это вызвано тем что они не большие, все разные, и их много. И при размещении иным способом, будут влиять друг на друга (ширины и высота ячеек). Так родилась идея концепции один лист - одна таблица. Среднее количество таблиц на которое рассчитываю более 500 шт. А теперь приставь, как в них ориентироваться... При существующем подходе к управлению листами (информацией) реализовать ее не возможно, так как не даст ожидаемого эффекта.
Цитата:
Сообщение от VictorM Посмотреть сообщение
Как-то давно нашел код такого вот менеджера. К сожалению не знаю автора.
ИМХО он намного удобнее.
Применил не раз в своих проектах, выкладывал здесь на форуме тоже.
Мне он показался удобнее только тем что окно больше. Но это не проблема для формы. Минусы для меня:
1. Нет иерархии для листов. А значит затруднено логическое понимание информации (в больших объемах), и т.п. тут много что можно продолжить.
2. Поиск информации на листах затруднен. Хотя и есть кнопка просмотра, но только он нее мало так как форма занимает почти весь экран, передвигаться по листу нельзя, есть "лишняя" информация, которая мне в 99% не нужна, а место занимает.
3. Отсутствуют "фича" запуска при нахождении курсора у края экрана. :))) Хотя на данном этапе она у меня работает плохо...
4. Нет инструментов управления листами. Я сторонки концепции, что все однотипное должно собираться в одном месте и иметь внутреннею структуру. По сути это не менеджер, а переключатель.

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

Вообще это компромисс, от другой идеи. Мне бы хотелось разместить этот менеджер в левой (или с правой) части экрана, уменьшив рабочую площадь листа, как меню или как менеджер проекта в VBA. Но на данном этапе я не нашел способа как это сделать, но есть мысль как обмануть ексель, она нуждается в проверке. Вообще мне бы хотелось взять за основу строение управления в окне VBA и перенести ее в эксель. Но скорее всего средствами форм и макросов это не возможно.

А есть идеи как можно решить те проблемы которые я озвучил?
С уважением, Алексей.

Последний раз редактировалось tae1980; 30.01.2011 в 10:36.
tae1980 вне форума Ответить с цитированием
Старый 30.01.2011, 10:31   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Виктор, а чем удобнее-то (стандартного интерфейса)?
в стандартном интерфейсе я с листа на лист перехожу одним кликом мыши (при разумном количестве листов в книге).
а здесь, форму открой, клик, лист выбери, клик, форму закрой, клик. а где же это долгожданное удобнее? а если кнопки на листе1 не видно? до нее еще скроллером (или обоими скроллерами) надо доехать.
и самое последнее, как этим замечательным менеджером вернуться с лист2 на лист1?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 30.01.2011 в 10:38.
IgorGO вне форума Ответить с цитированием
Старый 30.01.2011, 11:48   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

1. Приведенная форма менеджера выбора листов приведена ТОЛЬКО как пример! Естественно можно менять (я и сам все изменил про сравнению с исходным кодом) и размер и функциональность. Мне в ней нравится сама идея.
2. При кол-ве листов до 10-ти, допустим, форма бесполезна. все и так прекрасно можно выбрать. У меня эта форма работатет там, где листов больше 30-ти. Вот там она и полезна и нужна. И тот же предпросмотр очень помогает.
3. 99% "ненужной" информации как и способ запуска формы, опять же настраивается и делается применитьельно к конкретному проекту.
и 4-е, Последнее. Форма была показана как еще один пример выбора листа, а отнюдь не как панацея.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.01.2011, 12:15   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Во вложении пример сохранения настроек и картинки на ваши кнопки.
У меня очень часто глючит,не могу закрыть файл.идет на востановление.
Курсор срабатывает только при <10
Работа конечно проделана огромная.
Я думаю ,от такого таймера надо отказаться.

Здесь есть контрол Timer
Вложения
Тип файла: rar НН.rar (26.9 Кб, 22 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 30.01.2011, 13:16   #7
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Во вложении пример сохранения настроек и картинки на ваши кнопки.
У меня очень часто глючит,не могу закрыть файл.идет на востановление.
У меня ни чего подобного нет. (
Цитата:
Сообщение от doober Посмотреть сообщение
Курсор срабатывает только при <10
Работа конечно проделана огромная.
Я думаю ,от такого таймера надо отказаться.
Хотя особых проблем с открытием я не заметил, правда проверял только на одном компе. Но от работа таймера я далеко не в восторге. Однозначно менять или отказываться от фичи.
Цитата:
Сообщение от doober Посмотреть сообщение
Здесь есть контрол Timer
Вы про этот?
======
125. Таймер
Автор: Антон Рубин

Для тех кто нуждается в таймере, но не желает видеть его на форме, как конторл.В папке Release находится DLL-ка, а также библиотека типов, которую нужно найти в диалоговом окне References. Перед использованием DLL-ку нужно зарегистрировать в реестре с помощью имеющегося bat-файла.Библиотека писалась на VC++ 6.0 с использованием ATL 3.0.
=====
Изучаю...
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 30.01.2011, 15:39   #8
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Во вложении пример сохранения настроек и картинки на ваши кнопки.
Спасибо, с этим разобрался.
Цитата:
Сообщение от doober Посмотреть сообщение
Здесь есть контрол Timer
А вот с этим пока не могу. И похоже без помощи не смогу, так как ни разу с подобным не работал. dll я зарегистрировал, а что дальше делать?
Как запустить, как работать? В прилагающихся документах ни чего об этом нет. Насколько я понял это все для полного бейсика, его у меня нет.

Регистрация обязательна, или можно просто прописать полный путь к dll? Что для меня было бы более приемлемым вариантом.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 30.01.2011, 15:54   #9
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Еще раз хочу обратить внимание на одну проблему:
в режиме запуска формы vbModeless, происходит вылет на сточке (из-за этого в этом режиме нельзя управлять деревом): ActiveWorkbook.VBProject.VBComponen ts(ЛистИмяЕсть).Name = ЛистИмя
При обычном запуске, все нормально. Проблема высокой критичности!
Само переименование происходит, но после этой строчки форма просто закрывается. И все... Если проблему не решить придется отказаться от режима запуска vbModeless, а это потеря ~40% функциональности. ((
Эта строчка есть в процедурах:
cbЛистУровеньНиже_Click
cbЛистУровеньВыше_Click
cbNodesУровеньНиже
cbNodesУровеньВыше
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 30.01.2011, 16:23   #10
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Во вложении пример сохранения настроек и картинки на ваши кнопки.
Почему-то иконки из ImageList1 не отображаться. :(( Хотя место под них выделяется и размер иконок считывается правильно.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловый менеджер akosh12345 Общие вопросы Delphi 12 11.05.2010 21:55
Файл менеджер sen4ik PHP 2 25.08.2009 20:33
Файловый менеджер на C sht0p0r Помощь студентам 3 07.12.2008 16:47
Менеджер контента Insainer HTML и CSS 1 27.04.2008 11:06
файловый менеджер greyshadow Общие вопросы Delphi 3 16.09.2007 19:23