|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.11.2014, 22:54 | #1 |
Форумчанин
Регистрация: 08.06.2009
Сообщений: 179
|
количество кнопок на екране
Можно ли посчитать количество кнопок, которые видны на екране (не скрытые)? Сейчас их 8, а после скрытия строк 1-3 должно быть 6. Файл прилагаю
|
19.11.2014, 11:49 | #2 |
Форумчанин
Регистрация: 08.06.2009
Сообщений: 179
|
Код:
|
19.11.2014, 19:15 | #3 |
Форумчанин
Регистрация: 08.06.2009
Сообщений: 179
|
Вот ответ:
Код:
|
19.11.2014, 20:09 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
да уж...
оцените точность подсчета количества ВИДИМЫХ кнопок макросом.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
19.11.2014, 21:02 | #5 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Вообще-то в оригинале ответа говорится о том, что для если видимость кнопок действительно нужно ограничивать экраном, то понадобится использовать ActiveWindow.VisibleRange
А это макрос предназначен для подсчёта видимых(в т.ч. и частично) кнопок в рабочем листе, без привязки к экрану. |
19.11.2014, 22:24 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
pashulka, взгляните шире.
допустим, Вы уже написали функцию, которая определяет сколько кнопок пересекаются с ActiveWindow.VisibleRange я чуть-чуть изменил исходный файл. окройте его. 1. сколько точек Вы видите на экране? (ответ: 2) 2. сколько точек сосчитала бы Ваша гипотетическая функция? (ответ: 1) нажмите кнопку, читайте подсказку в окне 1-го сообщения (как видите кпопка подписанная как "Кнопка 3" не имеет с ActiveWindow.VisibleRange ничего общего, хотя отчетливо видна на экране) использовать ActiveWindow.VisibleRange - нужно, но подсчет кнопок в нем не дает ответ на поставленный вопрос. ответ, есть, но он не очевидный и, видимо, не простой. собственно по этому в теме еще не опубликован макрос, отвечающий на поставленный вопрос
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
19.11.2014, 22:35 | #7 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
IgorGO, Если взглянуть шире, то нужно учитывать наличие закреплённой области, разделение окна, не говоря уже о том, что на экране могут отображаться несколько окон, причём они могут принадлежать разным книгам, эти окна могут перекрываться и т.д. и т.п. ...
|
19.11.2014, 22:46 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а другие книги и листы... тут отсечены уже вот этим:
Код:
я благополучно два вечера убил на поиски решения понимаете с каким результатом))) зато копнул обьектную модель Ексель чуть глубже и шире, посмотрел на некоторые вещи с другой стороны... достойным ответом здесь будет макрос, который посчитает видимые полностью или хоть частично кнопки
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
19.11.2014, 23:02 | #9 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Дык, это отсечение и есть неправильность, разумеется, с Вашей точки зрения ибо, повторюсь, на экране могут быть несколько окон и они могут принадлежать разным книгам.
Так что в идеале, конечно можно попробовать перебирать все окна (Windows) у этих окон все (Panes), но даже это не даст ответа на вопрос, ибо окна могут перекрывать друг друга и VisibleRange выдаст диапазон, кнопки которого не будут видны нашему глазу, но формально будут на экране. |
20.11.2014, 00:18 | #10 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
понятно, что как обычно - задача поставлена на намеках
в одном из первых сообщений от автора: ActiveSheet.Buttons.Count Цитата:
только проверять пересекаются-ли габариты кнопки с территорией ActiveWindow.VisibleRange, а тут еще вылезло, что закрепленная область не есть частью ActiveWindow.VisibleRange, надо определить видимую часть закрепленной области и пересечение кнопок с ней. и фиг знает что еще может всплыть. на жто я нарвался во время поисков решения, а действительно, когда окно разбито на несколько, наверняка в каждом будет свой ActiveWindow.VisibleRange это все можно проверить, но... это не красиво и геморройно
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите сделать - программа выводит текст на экран, определяет количество предложений и количество слов (язык С) | карен1 | Фриланс | 4 | 26.12.2013 21:35 |
СозданиЕ определенного количество кнопок | Giku | Помощь студентам | 9 | 07.11.2011 23:35 |
Задана последовательность чисел в формате:сначала количество цифр в числе, потом - цифры числа. Подсчитать количество. | Arn1 | Помощь студентам | 4 | 03.10.2011 20:03 |
количество цифр и количество символов до первой гласной буквы | 111111 | Общие вопросы C/C++ | 2 | 22.12.2008 12:15 |
Количество кнопок на форме | fuv | Общие вопросы Delphi | 5 | 25.04.2007 16:33 |