Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Ввиду того, что с автором плагина связаться не получается (указанный в документации плагина почтовый адрес as3856@rambler.ru "не найден или не принимает входящие письма") решил спросить на форуме. Может кто с этим сталкивался. Создаю таблицу, заполняю её. Мне нужно проводить поиск текста в ней по ячейкам. Для этого в плагине есть команда asGridSearch.
Команда asGridSearch работает корректно только с таблицами равного размера, т.е. 2х2, 3х3, 5х5 и так далее. Если же таблица 5х6, то эта команда проводит поиск только в диапазоне 5х5, а остальные ячейки считает пустыми, хотя все поля заполнены.
Так же, когда таблица прямоугольная, к примеру 9х6 то почему-то координаты ячеек после ячейки с координатами 5,5 меняются местами, т.е. первая ячейка следующей строки должна иметь координаты 0,6, а asGridSearch выдаёт 6,0...
Буду очень благодарен за разъяснение данной проблемы или может кто поможет связаться автором этого плагина...
bamih1, К моему сожалению придётся подождать, так-как плагин возможно исправить только после установки соответствующих библиотек. Временно у меня нет такой возможности.
с уважением as3856
PS Если Ваш проект не терпит отлагательств то могу предложить Вам самому написать команду поиска. Это возможно средствами NeoBook'a путём перебора в цикле ячеек таблицы. И хотя этот вариант будет уступать по скорости обработки - тем не менее это рабочий вариант.
Хорошо, я подожду. Пока поработаю с квадратными таблицами.
Добавлено (05 Декабря 2020, 00:38) --------------------------------------------- Можно ли как-то отключить автовыделение первой ячейки после отрисовки таблицы?
Добавлено (05 Декабря 2020, 00:39) --------------------------------------------- Можно ли как-то отключить автовыделение первой ячейки после отрисовки таблицы?
1.Создать таблицу на прямоугольнике asGridCreate "Rect" "" "10" "10" "" "" "1" "1" Написано, что цвет ячеек по умолчанию 255,255,255, однако при создании этой команды, если не вписывать цвет, то цвет ячеек таблицы светло-желтый. Правда это не проблема, можно вручную вписать.
2.Установить настройки отображения рамки asGridBorder "Rect" "" "" Эта команда у меня работает только если устанавливаю/убираю рамку на всей таблице. Если пытаюсь изменять рамки на FixedCellBorder или CellBorder, то не работают не None, не Raised, не Lowered
Может я что-то не так делаю пробовал делать рамку толще, думал так будет работать, но нет?
2.Установить настройки отображения рамки asGridBorder "Rect" "" "" Эта команда у меня работает только если устанавливаю/убираю рамку на всей таблице. Если пытаюсь изменять рамки на FixedCellBorder или CellBorder, то не работают не None, не Raised, не Lowered
Может я что-то не так делаю пробовал делать рамку толще, думал так будет работать, но нет?
Доброго! Спасибо за помощь, прикрепляю zip архив. Еще обнаружил, что при печати страницы данные таблицы не печатаются. В тестовом проекте вывожу цифры в случ. порядке в таблицу, затем пытаюсь напечатать таблицу с цифрами, однако в итоге пустой прямоугольник даже без сетки.
Да, у меня тоже функции рамки таблицы\ячейки и печати в этом демо не работают (печатается пустой прямоугольник, не отображая таблицу внутри).
Я сообщил Андрею, разработчику плагина. Но у него пока нет возможности заняться плагином.
Для создания сетки ещё есть плагин NeoBookDB (+Pro версия), просто сетку можно попробовать плагином hpwGrid (Hans-Peter Wickern) или плагином bdStringGrid (Drazen Glojnaric, Marije Ljolje).
Задача была написать программу для помощи составления графиков, отчетов и пр. для частных помощников по уходу за больными с повреждением позвоночника, черепно-мозговых травм, в том числе уход за ребятами с тяжелыми ранениями в СВО. Программу я написал им еще в прошлом году. Таблицу я составлял из объектов TextEntry, т.е. на 5 странице программы 31x20 = 600 ячеек. Скриншоты прикрепил. У меня компьютер достаточно мощный, стоит Win11, все работает хорошо, при переключении страниц конечно есть небольшие подвисания, а у них компьютеры очень слабые, при переходе на другую страницу программа может подвисать до 1 мин. Попросили попробовать устранить эту проблему. Тогда я решил попробовать сетку, выбрал плагин Андрея, он очень мощный, однако вот при печати страницы с сетками печатается пустая таблица. Функция вдавленной или поднятой сетки фактически не особо нужна, просто заметил эту ошибку во время изучения функционала плагина, а вот пустая страница при печати фактически свела использование плагина к нулю.
Возможно, это не устранимая проблема, я читал в сети, что при печати страниц, где работают разные плагины NB тоже отображают пустой прямоугольник. Пробовал другим плагином сохранить графический скриншот программы, но при сохранении всего окна Windows с программой все получается, а при сохранении только окна программы, сохраняется почему-то только часть окна. Видимо глобальные переменные [PubLeft], [PubTop] и [WindowLeft], [WindowTop] в 11 версии работают не корректно при чем, если программу двигаю правее, то скриншот получается с большим отступом слева (т.е захватывает часть рабочего стола, пробовал разные плагины), если же двигаю программу в верхний левый угол, то уже большая часть программы входит в скриншот. Однако даже это не выход, так как придется сохраненный файл открывать сторонней программой и уже его распечатывать. Ухаживают за больными в основном женщины которым за 50, знание компьютера очень слабые, по этому скриншоты вряд ли подойдут.
Если нужно распечатать скриншот, то это не проблема, можно сохранить скрин как файл и потом этот файл запустить на печать. Пользователь эту кухню видеть не будет. Я где-то делал такое, надо поискать. Так что это вполне рабочее решение.
Есть возможность даже конкретный объект заскриншотить (плагин ksFunctions (Игорь Р.), команда ksShotObject).
Андрей, попробуйте команду ksShotWindow (плагин ksFunctions) = Сделать снимок полного окна (даже за пределами рабочего стола) и сохранить файл в формате BMP.
Например, такой строкой я делал скриншот окна, созданного из контейнера и отображаемого без рамки и строки заголовка (переменная [FileIMG] в примере хранит путь к создаваемому файлу BMP, вы можете создавать его и во временной папке Windows):
ksShotWindow "[Container5.WinHandle]" "[FileIMG]"
А потом можно автоматически отправить его на печать командой PrintImageFile или командой PrintImageFileWH.
Огромное спасибо, вы предложили идеальное решение проблемы! Отлично сработала команда ksShotWindow, другие почему-то работали не совсем корректно, правда пришлось еще установить плагин hpwUtility для получения HWND окна. Я вот сразу даже не сообразил, что можно распечатывать сохраненное изображение средствами NB, сторонней программой было бы очень проблемно. Команды NB печати видел, но не пользовался, по этому и не вспомнил о них. Ну и в конце удаляю файл и все хорошо. Спасибо!!!
Если нужен дескриптор окна приложения, то он есть в глобальной переменной [WinHandle].
Есть эта возможность и в ksFunctions (Игорь Р.), который вы уже используете в проекте.
Для получения HWND окна (дескриптора главного окна, а также дочернего окна, окна объекта под указателем мыши) можно использовать ещё плагины: zmFunctions 1.0b (Пётр Павлов), NeoDouble 1.0.6 (David Esperalta), hpwSendKeys 1.21 (Hans-Peter Wickern), rlFunctions 2.6s (Reynold E. Lariza). Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Вот нашел еще не работающую команду в плагине(очистка строки):
Спасибо, передал Андрею! Может когда-нибудь у него будет время перетряхнуть этот плагин.
А очистка просто удалением переменной не подходит там?
Добавлено (23 Апреля 2023, 10:43) --------------------------------------------- Андрей, хорошие новости!
Андрей, который разработчик, поручил собрать все косяки плагина (описать их) и плюс сообщить о том, каких команд в плагине не хватает. После этого он возьмётся за переработку плагина.
Дело в том, что если изменить переменную, то в таблице не произойдет изменений, пока снова не записать переменную в ячейку. Ну если только на таймер вешать. Очищать можно конечно циклами по ячейкам, но это займет больше времени, чем очистка по строкам или столбцам. Я очищаю столбцами, как бы и разницы нет, если таблица имеет много столбцов и строк. Если же всего одна строка, то логичнее очищать строкой, а эта команда не работает.
Да, конечно, сейчас начну составлять список не работающих команд, косяков и хотелок.
Составил список из 10 строк. У меня вин 11, программа NB.
1.Создать таблицу в прямоугольнике: asGridCreate "Table" "Arial|clWindowText|10||204" "1" "1" "" "" "" "" Если не вписать количество строк и колонок, то при создании таблицы появляется окно с ошибкой. В окне помощника написано, что по дефолту должно вписываться по 5 строк и 5 ячеек, но вот если вручную не вписать, то будет ошибка. Кроме того, там по умолчанию как бы должны устанавливаться еще и цвет фиксированных ячеек и цвет рабочих ячеек, однако этого тоже не происходит, устанавливается по умолчанию желтый цвет, а должен по умолчанию белый (255,255,255). Хотелка :), если в полях написаны по умолчанию данные, и если пользователь не заполняет эти поля, то же можно ли чтобы эти данные по умолчанию вписывались автоматом? Вот так: asGridCreate "Table" "Arial|clWindowText|10||204" "5" "5" "192,220,192" "255,255,255" "1" "1" т.е. пользователь выбрал только прямоугольник Table, шрифт "Arial|clWindowText|10||204", а остальное, если оно указано по дефолту вписалось автоматически. Так бы во всех командах, где есть значение по умолчанию. Мне кажется, что так бы было нагляднее.
2.Установить настройки отображения рамки asGridBorder "" "" "" Команда частично работает на рамку всей сетки. Работает NONE(убирает рамку), и работает установка таблицы, только я не понял, что работает Raised или Lowered, не совсем наглядно, вдавливается или поднимается таблица, вроде как просто рамка появляется. Может, потому что нужно, чтобы рамка была не менее 2 пикс.? Ведь только разными цветами 1 пикселя и второго можно показать вдавленность или выпуклость рамки? На отдельные ячейки эта команда совсем не работает.
3.Очистить указанную строку ячеек asGridClearRow "" "" Эта команда не работает. Очистка указанных столбцов работает хорошо.
4.Повернуть текст в ячейке на выбранный угол asGridCellTextRotate "" "" "" "" Команда работает, но не совсем ясно, я подумал, что отсчет градусов должен идти по часовой стрелке. Выбрал 90 градусов, но оказалось расчет идет против часовой. В помощнике может напишите об этом. Также я думал, если против часовой, то нужно вписывать отрицательное значение -90. Здесь вот пояснения бы написать.
5.В форуме пользователь bamih1 писал про ошибку команды поиска asGridSearch "" "" "" "" "" У меня эта команда отработала без ошибок, возможно, Андрей уже починил эту команду.
Еще этот пользователь писал, "Можно ли как-то отключить авто выделение первой ячейки после отрисовки таблицы?" Я бы тоже поддержал его. Может можно в команде опциональных настроек asGridOptions "" "" "" Сделать возможность включать/выключать авто выделение ячеек. Иногда это выделение не нужно, требуется обычная таблица без различных действий, т.е. вот даже чтобы совсем не появлялась это "выделение" на первой ячейке.
6. Показать или скрыть таблицу asGridShow "" "" При создании этой команды, не происходит запись false или true в команду, выбирая любое значение, оно не вписывается. Команда не работает, даже если вписываю значение вручную.
7.Преобразовать ячейки в прямоугольники с закругленными углами asGridRoundRectangle "" "" "" Команда не работает, если таблица еще не заполнена значениями Если же значениями заполнить, то не закругляются рабочие ячейки первой строки и первого столбца.
8.Удалить столбец или строку в конце таблицы asGridDeleteRowCol "" "" Работает хорошо, но если удалять до конца, то не удаляет первый столбец или первую строку (возможно так и было задумано, а возможно нужно удалять и первые или нужно проверять если удаляется последний столбец или строка, то удалять всю таблицу?)
9.Установить опциональные настройки таблицы При true перемещение бегунка прокрутки мыши вызывает немедленное перемещение ячеек asGridOptions "Table" "ThumbTracking" "True" Не понял эту команду, менял на false, вроде бы одинаково, не заметил разницы.
10.Еще из хотелок(очень бы хотелось ) можно ли сделать так, чтобы при печати страницы встроенной командой NB отображались все данные из таблицы? В данный момент при печати прямоугольник таблицы пустой, в нем нет даже сетки. Если это невозможно, может можно тогда сделать снимок всей страницы и поместить его в графический файл?
Совсем придирки, сразу хочу извиниться, даже не включил изначально это в список, Андрей это на ваше усмотрение? Сетка и таблица фактически одно и тоже, в некоторых местах у вас написано таблица, в других сетка. Может все унифицировать и писать сетка, если плагин grid? Все мы в этом путаемся и называем то таблицей, то сеткой, вот к примеру команда:
Код
asGridCreate "" "" "" "" "" "" "" ""
Вроде бы создать сетку, а в пояснении: "Создать таблицу". Сделал скриншот окна помощника, даже в нем в нескольких местах по разному.
Постараюсь исправить выявленные косяки. Есть небольшие идеи для дополнения плагина. Ну и ложка дёгтя - в связи с большой загруженностью срок выполнения такой работы примерно на 1 мес.
Добавлено (27 Мая 2023, 09:56) --------------------------------------------- Плагин на основе нового компонента asGrid 3 . Плагин практически не тестирован, пишу без тестов - тестировать некогда. Если у кого- то есть желание и время можете тестить и писать сюда результаты и пожелания. Плагин не дописан и находится в разработке. Из-за невозможности выкладывать файлы больше 1500 кб - даю ссылку на архив на яндекс -диске. https://disk.yandex.ru/d/eyux-2ZDP8XB5w
Сообщение отредактировано AS3856 - Сб, 27 Мая 2023, 16:04
Начал тестировать, первая команда по созданию сетки выводит точно такое же окно помощника как и вторая версия. Возможно это у меня глюк какой. Дело в том, что в выходные решил привести в порядок свои плагины, исправить на них окно помощников и вот у меня тоже на одной системе почему-то выводятся старые окна, и размер плагина больше, на другой системе на другом ssd диске все норм, дизайн окошек изменился. Не могу понять в чем дело, будто, где-то кэшируется. Так что это может быть у меня глюк. Прошу отписаться других тестировщиков о первой команде вашего плагина.
Попытался ввести вторую команду вашего нового плагина, она подвешивает среду разработки, устраняется только удалением процесса.
Андрей, ссылка на плагин обновлена выше, баг с зависанием был устранён автором.
В окне помощника должно быть написано внизу asGrid 3.0
Плагин asGrid 2 удалите из списка установленных плагинов.
Добавлено (29 Мая 2023, 15:19) --------------------------------------------- Если все равно подвешивает, то попробуйте эту версию, кажется у меня свежее: https://disk.yandex.ru/d/wb62qg-0i6U_QQ
Скачал обновленную версию, в основных командах багов и проч. не нашел. Команды закрасок не все тестировал. Единственное, что также при печати страницы пустой прямоугольник. К счастью это мы уже научились обходить печатью скриншота окна программы. P.S.Андрей в последнем посте прикрепили только плагин, демки нет.