![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]()
Последнее время я "терроризировал" местных гуру по разным вопросам. Настало время представить на их суд, что у меня получилось. Хотелось бы услышать мнения и советы по оптимизации.
Содержимого тестовой книги пугаться не стоит, это ядерный коктейль из пары курсовиков и диплома образца пятилетней давности. На данные момент выявлены следующие проблемы в решении которых мне нужна помощь: 1. в режиме запуска формы vbModeless, происходит вылет на сточке (из-за этого в этом режиме нельзя управлять деревом): ActiveWorkbook.VBProject.VBComponen ts(ЛистИмяЕсть).Name = ЛистИмя При обычном запуске, все нормально. Проблема высокой критичности! 2. Работа с Application.OnTime не отличается гладкостью, и есть ряд проблемы при редактирование кода в VBA. В эхе упоминали о ином похожем способе. Было бы интересно узнать подробности. 3. Кнопки не отличаются красотой... Можно ли использовать стандартные картинки для меню? 4. Тормоза при обновлении treeview. Как можно оптимизировать код? 5. Как обновлять форму при переходах между книгами, без адаптации книг. В развитие идеи: 1. Сделать форму по настройке. Доработать существующие элементы. 2. Добавить возможность изменять размер формы. 3. Попробовать делать прозрачным не всю форму. а только фон treeview. 4. Добавить возможность задавать цвет фона для названия узлов. Хотя как мне сейчас видеться, удастся сделать только стандартные 8 цветов. 5. Запоминать значения параметров настроек между запусками excel.
С уважением, Алексей.
Последний раз редактировалось tae1980; 30.01.2011 в 10:48. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
Если уж была проведена такая работа над созданием проекта, видимо был в этом какой-то глубинный смысл.
Но вот выбор листов... Как-то давно нашел код такого вот менеджера. К сожалению не знаю автора. ИМХО он намного удобнее. Применил не раз в своих проектах, выкладывал здесь на форуме тоже.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
![]() |
#3 | ||
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]() Цитата:
В приведенных листах видно, что все таблицы размещены по диагонали, это вызвано тем что они не большие, все разные, и их много. И при размещении иным способом, будут влиять друг на друга (ширины и высота ячеек). Так родилась идея концепции один лист - одна таблица. Среднее количество таблиц на которое рассчитываю более 500 шт. А теперь приставь, как в них ориентироваться... При существующем подходе к управлению листами (информацией) реализовать ее не возможно, так как не даст ожидаемого эффекта. Цитата:
1. Нет иерархии для листов. А значит затруднено логическое понимание информации (в больших объемах), и т.п. тут много что можно продолжить. 2. Поиск информации на листах затруднен. Хотя и есть кнопка просмотра, но только он нее мало так как форма занимает почти весь экран, передвигаться по листу нельзя, есть "лишняя" информация, которая мне в 99% не нужна, а место занимает. 3. Отсутствуют "фича" запуска при нахождении курсора у края экрана. :))) Хотя на данном этапе она у меня работает плохо... 4. Нет инструментов управления листами. Я сторонки концепции, что все однотипное должно собираться в одном месте и иметь внутреннею структуру. По сути это не менеджер, а переключатель. Попробуйте запустить мой менеджер в режиме vbModeless (после загрузки достаточно подвести курсор в левому краю экрана), включите режим "Сверху" и попробуйте прогуляться по лист как будто ищете информацию, листы большие, найти нужную таблицу не так-то легко (знаю по личному опыту), особенно если не знать какой лист нужен. А теперь представьте, что информация изменяется (добавляется) в реальном времени. Можно дать возможность макросам или процессам управлять иконками у узлов, тогда можно "видеть" что происходить не заходя на лист. Вообще это компромисс, от другой идеи. Мне бы хотелось разместить этот менеджер в левой (или с правой) части экрана, уменьшив рабочую площадь листа, как меню или как менеджер проекта в VBA. Но на данном этапе я не нашел способа как это сделать, но есть мысль как обмануть ексель, она нуждается в проверке. Вообще мне бы хотелось взять за основу строение управления в окне VBA и перенести ее в эксель. Но скорее всего средствами форм и макросов это не возможно. А есть идеи как можно решить те проблемы которые я озвучил?
С уважением, Алексей.
Последний раз редактировалось tae1980; 30.01.2011 в 10:36. |
||
![]() |
![]() |
![]() |
#4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
Виктор, а чем удобнее-то (стандартного интерфейса)?
в стандартном интерфейсе я с листа на лист перехожу одним кликом мыши (при разумном количестве листов в книге). а здесь, форму открой, клик, лист выбери, клик, форму закрой, клик. а где же это долгожданное удобнее? а если кнопки на листе1 не видно? до нее еще скроллером (или обоими скроллерами) надо доехать. и самое последнее, как этим замечательным менеджером вернуться с лист2 на лист1?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 30.01.2011 в 10:38. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
1. Приведенная форма менеджера выбора листов приведена ТОЛЬКО как пример! Естественно можно менять (я и сам все изменил про сравнению с исходным кодом) и размер и функциональность. Мне в ней нравится сама идея.
2. При кол-ве листов до 10-ти, допустим, форма бесполезна. все и так прекрасно можно выбрать. У меня эта форма работатет там, где листов больше 30-ти. Вот там она и полезна и нужна. И тот же предпросмотр очень помогает. 3. 99% "ненужной" информации как и способ запуска формы, опять же настраивается и делается применитьельно к конкретному проекту. и 4-е, Последнее. Форма была показана как еще один пример выбора листа, а отнюдь не как панацея.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Во вложении пример сохранения настроек и картинки на ваши кнопки.
У меня очень часто глючит,не могу закрыть файл.идет на востановление. Курсор срабатывает только при <10 Работа конечно проделана огромная. Я думаю ,от такого таймера надо отказаться. Здесь есть контрол Timer
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#7 | |||
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]() Цитата:
![]() Цитата:
Цитата:
====== 125. Таймер Автор: Антон Рубин Для тех кто нуждается в таймере, но не желает видеть его на форме, как конторл.В папке Release находится DLL-ка, а также библиотека типов, которую нужно найти в диалоговом окне References. Перед использованием DLL-ку нужно зарегистрировать в реестре с помощью имеющегося bat-файла.Библиотека писалась на VC++ 6.0 с использованием ATL 3.0. ===== Изучаю...
С уважением, Алексей.
|
|||
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]()
Спасибо, с этим разобрался.
Цитата:
Как запустить, как работать? В прилагающихся документах ни чего об этом нет. Насколько я понял это все для полного бейсика, его у меня нет. Регистрация обязательна, или можно просто прописать полный путь к dll? Что для меня было бы более приемлемым вариантом.
С уважением, Алексей.
|
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]()
Еще раз хочу обратить внимание на одну проблему:
в режиме запуска формы vbModeless, происходит вылет на сточке (из-за этого в этом режиме нельзя управлять деревом): ActiveWorkbook.VBProject.VBComponen ts(ЛистИмяЕсть).Name = ЛистИмя При обычном запуске, все нормально. Проблема высокой критичности! Само переименование происходит, но после этой строчки форма просто закрывается. И все... Если проблему не решить придется отказаться от режима запуска vbModeless, а это потеря ~40% функциональности. ![]() Эта строчка есть в процедурах: cbЛистУровеньНиже_Click cbЛистУровеньВыше_Click cbNodesУровеньНиже cbNodesУровеньВыше
С уважением, Алексей.
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
![]()
Почему-то иконки из ImageList1 не отображаться. :(( Хотя место под них выделяется и размер иконок считывается правильно.
С уважением, Алексей.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Файловый менеджер | 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 |