Вход | Регистрация
    1  2  3  4  5  6  7  8  9  10  11   
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Добавил пару методов в FormEx

Ø [длинная ветка, 07.04.21 - 15:34]
v7: Добавил пару методов в FormEx
Я
   АЛьФ
 
18.11.20 - 12:10
Понадобилось тут для работы добавить пару методов.

КопироватьОбластьТаблицы(<ТаблицаИсточник>,<СтрокаНачальная>,<КолонкаНачальная>,<СтрокаКонечная>,<КолонкаКонечная>,<ТаблицаПриемник>,<СтрокаНачальнаяПриемника>,<КолонкаНачальнаяПриемника>)
Назначение:
Метод для копирования области ячеек из одной таблицы в другую. Копируемые ячейки заменяют содержимое ячеек в таблице-приемнике.
Параметры:
ТаблицаИсточник - объект Таблица, из которого надо скопировать ячейки;
СтркаНачальная,КолонкаНачальная,СтрокаКонечная,КолонкаКонечная - координаты, задающие копируемую область ячеек;
ТаблицаПриемник - объект Таблица, в который надо скопировать ячейки;
СтрокаНачальнаяПриемника,КолонкаНачальнаяПриемника - координаты начальной ячейки области, куда надо поместить копируемые ячейки.

ОткрытьДвиженияОбъекта(<Документ>)
Назначение:
Открывает стандартное окно движений документа по регистрам. Аналогично действию ''Движения документа'' в контекстном меню журнала документов.
Параметры:
<Документ> - документ, движения которого надо показать.

Если кому интересно, сборку 2.0.5.152 качать, как обычно на formex.dorex.pro
   АЛьФ
 
201 - 04.12.20 - 17:20
2(200) Где именно создаётся объект (обработка, глобальник)?
   АЛьФ
 
202 - 04.12.20 - 17:22
2(200) Кажется понял. В методе ДобавитПанель все параметры обязательные. Забыл закрыть значения по умолчанию.
   smitti911
 
203 - 04.12.20 - 17:56
(201)в обработке
   АЛьФ
 
204 - 04.12.20 - 19:10
2(203) Если указать явно все параметры, глюк проявляется? Что-то у меня не получается воспроизвести.
   smitti911
 
205 - 04.12.20 - 19:37
(204) Перем Панель;
//*******************************************

Процедура Сформировать()
    Панель.ВыбратьПанели();
    Пока Панель.ПолучитьПанель() = 1 Цикл
        Сообщить("Панель Код "+Панель.Код+" заг "+Панель.Заголовок);
    КонецЦикла;

    КодНовойПанели = Панель.ДобавитьПанель("ПанПанПан","Панелька",50,0,1);
    Сообщить(" КодНовойПанели "+КодНовойПанели);
    
    Панель.ВыбратьПанели();
    Пока Панель.ПолучитьПанель() = 1 Цикл
        Сообщить("___Панель Код "+Панель.Код+" заг "+Панель.Заголовок);
    КонецЦикла;
КонецПроцедуры

//======================================================================

Процедура ПриОткрытии()
    Панель = СоздатьОбъект("ПанельСтрокиСостояния");
КонецПроцедуры// ПриОткрытии



Процедура ПриДвойномНажатииЛевойКнопкиВСтрокеСостояния(ИдентификаторПанели)
    Сообщить("Панель Иднт "+ИдентификаторПанели);
КонецПроцедуры


Открываю обработку, жмакаю по системным панелям и получаю их идентификаторы. Посля нажатия Сформировать системные панели пропадают а слева добавляется моя "Панелька".
   smitti911
 
206 - 04.12.20 - 19:39
   АЛьФ
 
207 - 04.12.20 - 19:43
2(205) А FormEx где грузится?
   smitti911
 
208 - 04.12.20 - 19:56
(207) в глобальнике ПриНачалеРаботыСистемы
   АЛьФ
 
209 - 04.12.20 - 19:58
2(208) Воспроизвел. Буду исправлять.
   АЛьФ
 
210 - 04.12.20 - 20:09
2(208) Вроде поправил. Выложено по тому же адресу: https://yadi.sk/d/SaGiKhu0fjokHw
   Злопчинский
 
211 - 04.12.20 - 20:12
эххх если бы еще сделал автоподбор размера шрифта чтобы текст вписывался в контрол... ну хотя бы для текстовых надписей на форме... @Hogik такую штуку сделал, но у ней есть ограничения в применении...
   АЛьФ
 
212 - 04.12.20 - 20:14
2(211) Это надо отрисовку контрола перехватывать. Могу попробовать просто расчет сделать. Передаешь строку и шрифт, возвращает размер, который строка займет.
   Злопчинский
 
213 - 04.12.20 - 20:15
(212) ну, можно попробовать. с учетом того надо что строка с переносами в текстовом контроле м.б. а не в одну строку...
   Duke1C
 
214 - 06.12.20 - 14:22
(118) - (132) подтверждаю.
Причем сто лет назад сделано. До сих пор работает. Только что проверил на Win10х64.
При нажатии на кнопку генерируется штатное внешнее событие
   Duke1C
 
215 - 06.12.20 - 14:30
   АЛьФ
 
216 - 07.12.20 - 09:27
2(213) Добавил метод Окна::ПолучитьРазмерТекста(). К сожалению, системная функция GetTextExtentPoint32 воспринимает переданный текст, как одну строку. Поэтому для многострочных текстов надо будет делать цикл и каждую строку считать отдельно.

Добавил возможность вывод картинок в панель строки состояния.

Для тестов:
https://yadi.sk/d/SaGiKhu0fjokHw
   Злопчинский
 
217 - 07.12.20 - 10:16
(216) ''''? а как я узнаю сколько строк НЕ В МНОГОСТРОЧНОМ ТЕСКТСЕ, а в текстовой надписи?
   АЛьФ
 
218 - 07.12.20 - 10:33
2(217) Это типа при выводе с автопереносом? Берешь текст, который выводится, отправляешь в этот метод. Потом полученное число делишь на ширину атрибута формы. Получаешь на сколько строк разобьется текст при автопереносе.
   Злопчинский
 
219 - 07.12.20 - 10:36
(218) ээээ, это будет приблизительно. и хорошо отрабатывать будет только когда ширина большая, а слова короткие, когда перенос хорошо попадает на пробел между словами.
.
и хочется получить размер шрифта, при котором текст вписывается в текстовый реквизит...
   Андрей_Андреич
 
220 - 07.12.20 - 10:51
(219) Вспоминая из юности - выводил тексь в ячейку экселя с автовысотой строки и смотрел высоту.
   АЛьФ
 
221 - 07.12.20 - 10:55
2(219) Так все в твоих руках. На основе этого метода все можно сделать.
   Злопчинский
 
222 - 07.12.20 - 11:13
(221) у, блин. а как? пока непонятно...
   АЛьФ
 
223 - 07.12.20 - 11:18
2(222) Берешь свой текст, берешь шрифт размером 20. Считаешь сколько текст займет по горизонтали. Берешь размер реквизита, в который надо вписать. Делишь, получаешь коэффициент увеличения/уменьшения шрифта. Вычисляешь новый размер шрифта. Считаешь размер текст для него, корректируешь при необходимости на пару пунктов.
   Андрей_Андреич
 
224 - 07.12.20 - 11:29
(222) Создаешь объект экселя. Задаешь нужную ширину ячейки и выводишь в него текст. Задаешь автоперенос. Считываешь высоту ячейки. Не нравится - уменьшаешь и читаешь снова.
   Андрей_Андреич
 
225 - 07.12.20 - 11:30
(224) Не нравится - уменьшаешь шрифт и читаешь высоту снова
   Злопчинский
 
226 - 07.12.20 - 12:04
(224) эксель - стороннаяя хрень. ее не хочется юзать без острой необходимости.
   Злопчинский
 
227 - 07.12.20 - 12:05
(223) это не дает гарантии что количество получившихся строк с учетом переносов будет совпадать с получившимся расчетом.
   АЛьФ
 
228 - 07.12.20 - 12:14
2(227) Хочешь гарантию, сам вставь переносы строк в расчетных местах.
   АЛьФ
 
229 - 07.12.20 - 12:15
2(227) Ты можешь расписать более подробно задачу с парой примеров?
   Злопчинский
 
230 - 07.12.20 - 12:29
(229) да, сделаю, попозже.
 
 
   Злопчинский
 
231 - 07.12.20 - 12:32
(229) задача аналогичная как вот здесь у меня: http://catalog.mista.ru/public/181223/
только вместо этикетки - экранная форма. на форме - реквизит "Текст". В этот реквизит может выпихиваться текст произвольной длины (разумной, конечно). Тебуется чтобы текст произвольной длины вписался в текстовый реквизит.
   Злопчинский
 
232 - 07.12.20 - 12:33
.. на первом этапе считаем что в выводимом тексте нет принудительных переносов строк
   mishaPH
 
Модератор
233 - 07.12.20 - 13:58
Друзья. после подключения формэкса в тис выявлен неожиданный глюк.

дано.
на экран выводится монопольная форма (ввод числа или строки) если в это время продавец случайно просканирует чтото и отработает обработка внешнего события то оно срабатывает за этой якобы монопольной формой, отрабатывает нормально в чек даже товар попадает НО 1с зависает колом спасает только перезагрузка. Я так подозреваю, что и штатная обработка ожадания отработав в фоне подвешивает 1с.

все началось после запуска формэкса. т.к. до этого не жаловались много лет.

это както лечится?
   Злопчинский
 
234 - 07.12.20 - 14:54
(233) есть такое в мнопольно открытой форме обработкавнешнегособытия проваливается в самую внешнюю верхнюю обработку.
   Злопчинский
 
235 - 07.12.20 - 14:54
с формексом или нет - не знаю. без формекса не проверял.
   trdm
 
236 - 07.12.20 - 15:53
(233) Отладчиком погулять лучше.
   trdm
 
237 - 07.12.20 - 15:54
такие формы кличут модальными.
   mishaPH
 
Модератор
238 - 07.12.20 - 16:29
(236) (237) и что там гулять то? проблема есть перефокуссировка с модальной формы. Просто никто не жаловался на подобное до момента, пока в магазинах не завел раскраску всего и вся подключив формэкс. Вот и связал сэтим. Как будто с формэксом модальное окно уже не окно. Ранее же мод модальным ничего не работало далее

может я конечно не прав
   trdm
 
239 - 07.12.20 - 16:44
(238) Ну с ВК и не такие чудеса случаются.
   Злопчинский
 
240 - 07.12.20 - 16:49
..из-за этого пришлось чудить с обработкой-диспетчером для запуска молнопольных обработок. Сейчас вот тоже аналогичный проект будет. опять извращаться...
   trdm
 
241 - 07.12.20 - 17:05
(240) В чем там соль?
   trdm
 
242 - 07.12.20 - 17:06
(234) > есть такое в мнопольно открытой форме обработкавнешнегособытия проваливается в самую внешнюю верхнюю обработку.

Это же не особо сташно.
   Cthulhu
 
243 - 07.12.20 - 17:28
(238): может и неправ.
в 77 обработка внешнего события выполняется асинхронно по месту кода привязки к нему - и плюет с высокой башни на все прочие обстоятельства. как минимум на ранних версиях 1с с этим сталкивался и с тех пор от этого программно предохраняюсь.
   big
 
244 - 07.12.20 - 18:23
А если сделать запрет поступления данных со сканера, а потом только открывать модальное окно? Соответственно, после закрытия разрешать работу сканера. В атоловском драйвере это используется точно, как в штатном 1с-овском я не знаю.
   big
 
245 - 07.12.20 - 18:24
(244) Собснно - костыль, конечно же, но тем не менее.
   MWWRuza
 
246 - 07.12.20 - 20:38
Тут проблема похоже в том, что эта новая, самая "верхняя" форма не имеет модуля, если это ввод числа или строки. Если вы сами рисуете форму, то не трудно туда обработку внешнего события вставить, с одной  строчкой, типа "Скан.ПосылкаДанных = 1"... А так, сканер пикает, форма получает внешнее событие, и сканер задумывается в ожидании разрешения дальнейшей работы. Я думаю, в (244) правильное направление. Надо подумать, как это реализовать.
   mishaPH
 
Модератор
247 - 07.12.20 - 20:40
(244) да как вариант.
   mishaPH
 
Модератор
248 - 07.12.20 - 20:42
типа перед формой глСканерПосылкаДанных(0) делать а после глСканерПосылкаДанных(1)
   victuan1
 
249 - 07.12.20 - 20:44
(248) А если в этой модальной форме нужно принять событие от сканера?
   MWWRuza
 
250 - 07.12.20 - 20:49
(249) Какой? Системной ввод числа или строки? Как это можно сделать?
А если уж так нужно, то рисуй свою, аналог системной, которую будешь открывать методом ОткрытьФормуМодально, а в ней уже модуль будет, а в нем можно разместить обработку внешнего события...
   mishaPH
 
Модератор
251 - 07.12.20 - 20:49
(249) для моей задачи модальная форма это штатное ввестистроку() а если какая произв форма модальная то кто мешает там прописать обработкувнешнего события и сканер тогда с ней будет работать
   Злопчинский
 
252 - 07.12.20 - 21:03
(250) хрен там. если в однйо модальной форме есть ОбработкаВнешнегоСобытия для сканера и она открыта первой, а из нее открыта дочерняя модальная форма также с ОбработкаВнешнегоСобытия - то при сканировании в дочерней форме - нихера не происходит, при закрытии дочерней формы - ДОЧЕРНИЕ сканирования отрабатываются в родительской. что есть жпс.
   victuan1
 
253 - 07.12.20 - 21:40
(251) Не будет же, проблема в (233) описана.
   victuan1
 
254 - 07.12.20 - 21:44
(253) стоп. не то... вспоминаю... в чем была у меня проблема...
   victuan1
 
255 - 07.12.20 - 21:58
Вспомнил свою проблему, правильный ответ на нее таки в (244). Надо только придумать как правильно в универсальном виде заблокировать ОбработкуВнешнегоСобытия перед открытием системного модального окна.
   Злопчинский
 
256 - 07.12.20 - 22:21
а по поводу (252) кто-нить может прокомментировать?
   MWWRuza
 
257 - 07.12.20 - 23:46
(256) Да, ты прав. Сейчас набросал тестик небольшой, именно так и работает...
Модальное окно перехватывает внешнее событие у не модального, из которого его открыли, а если из него открыть еще одно модальное, то в нем не отрабатвает ВС.... Но, если его закрыть, в предыдущее - прилетает.

КартинкО: https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-367.jpg

Конфа для экспериментов: https://cloud.mail.ru/public/2juU/BFuX2fpNo
   MWWRuza
 
258 - 07.12.20 - 23:50
Поясню. Меню Тест. Окно1 не модальное, окна 2 и 3 - модальные. По кнопкам "Выполнить" открываются последующие окна. ОбработкаВнешнегоСобытия() одинаковая во всех трех окнах. ВК грузится из ГМ при старте.
   MWWRuza
 
259 - 07.12.20 - 23:55
При желании, можно конечно извратиться, через закрытие - повторное открытие формы сделать перехват данныз в Окно3 из Окна2... Или ложное закрытие попробовать применить. Но лениво... Задачи такой живой нет, только "ради науки" если :-)
   MWWRuza
 
260 - 08.12.20 - 00:07
Но, кстати, добавил системное окно - "ВестиСтроку", ничего не вешается, при сканировании, но и ничего не происходит вообще. Закрываешь его - данные в предыдущее окно прилетают, все точно так-же, как и в случае своего Окна3. Только в случае своего, можно "извратиться" и перехватить данные из Окна2, а в случае системного, так не прокатит...
 
 
   Злопчинский
 
261 - 08.12.20 - 00:26
(259) "Задачи такой живой нет," - да запросто.. пошаговый процесс отбора из рабочих ячеек например. да, можно все запихнуть в одну форму, на разные слои (сканирвоание ячейки, сканирование товара, еще всякие нужные сканирования), но это будет аццкая обработка... пробовал так, неподьемно и неудобно... хочется каждый отдельный "ввод данных" иметь в виде отдельно йобработки. чтобы вязать разные сценарии...
   Злопчинский
 
262 - 08.12.20 - 00:28
(259) "повторное открытие формы сделать перехват данныз в Окно3 из Окна2... " - можно, но погано.. промаргивание формы будет, и вдобавок когда массив данных большой передается от формы к форме - тоже надо все учитывать...
все проще должно бьыть.
   Злопчинский
 
263 - 08.12.20 - 00:28
(258) кстати, а без ВК - есть такая проблема с внешним событием в дочерних модальных окнах?
   victuan1
 
264 - 08.12.20 - 04:28
(260) А если перед этим был загружен Формекс?
   mishaPH
 
Модератор
265 - 08.12.20 - 07:34
(260) а вот у меня с форэксом или нет но при открытой ввести число скан отрабаиывается в предыдущей немодальной форме как будто ЗО модальной, в чеке товар появляется и т.п. модальное ввод числа висит далее и ни на что уже не реагирует заблокировав 1с
   trdm
 
266 - 08.12.20 - 08:28
Значит нужна пара глобальных процедур типа
ПослеСозданияФормы
ПослеЗакрытияФормы
с анализом их модальности и глобальная переменная со счетчиком открытых модальных форм и отбоем в "ОбработкаВнешнегоСобытия" в глобальнике.
У сканера вроде есть проперть "ПосылкаДанных". При открытии модальных форм ставить туда 0, после закрытия всех модалок восстановить.
   MWWRuza
 
267 - 08.12.20 - 10:00
(263), (264), (265) Это голая 1С, из ВК только ScanOpos... Вечером сегодня попробую загрузить Формех, посмотрю, поменяется что или нет. Тогда отпишусь...

(265) в чеке товар появляется и т.п. модальное ввод числа висит далее и ни на что уже не реагирует заблокировав 1с

Да? Странно... У меня не получилось смоделировать такое поведение, ничего не вешается, правда без Формекса. Попробуй мою тестовую: https://cloud.mail.ru/public/2o1J/4PLvpg58X правда, там не ввод числа, а ввод строки, из модальной формы2. Но, можешь переделать в число, и  при желании перенести в форму1, не модальную... Хоть яснее станет, куда копать.
   Злопчинский
 
268 - 08.12.20 - 10:05
(267) не получится, на домашнем компе нет сканера у мну
   Злопчинский
 
269 - 08.12.20 - 10:06
(267) "ничего не вешается, правда без Формекса."
- т.е. если открыть модальную форму, из нее дочернюю модальную форму и в этих двух модальных формах есть ОбработкаВнешнегоСобытия - то при сканировании в открытой дочерней форме - отрабатывает ОбработкаВнешнегоСобытия дочерней формы нормально? так?
   MWWRuza
 
270 - 08.12.20 - 10:07
Ну, пусть mishaPH попробует на том-же компе, где у него его рабочая конфа чудит.  Только рабочую закрыть надо, а то с ком-потами, "кто первый встал, того и тапки" :-)
   MWWRuza
 
271 - 08.12.20 - 10:12
(269) Нет, не так. Не вешается, но и в дочерней модальной форме, открытой из родительской модальной, ВС не отрабатывает, его ловит родительская, и при закрытии дочерней данные в нее попадают.
НО! Ничего не вешается.
   Злопчинский
 
272 - 08.12.20 - 10:13
(271) ок. у меня так же.
интересно, почему это так? и можно ли это полечить?
   Злопчинский
 
273 - 08.12.20 - 10:14
..а то затрахался передвать тонну параметров для поддержания контекста выполнения...
   MWWRuza
 
274 - 08.12.20 - 10:15
(268) не получится, на домашнем компе нет сканера у мну

Ну,... "Ты, это, заходи если что!(С)" - если будут какие-то идеи, набросай что-то для теста, я я попробую... У меня дома есть все.
   MWWRuza
 
275 - 08.12.20 - 10:18
(271) НО! Ничего не вешается. - и для своей формы, и для системной. Это пояснение для mishaPH.
   MWWRuza
 
276 - 08.12.20 - 10:37
(261) "(259) "Задачи такой живой нет," - да запросто.."

А вообще-то вспомнил. Была такая задача, давно... Из не модального окна документа ТТН_ЕГАИС, открывал форму обработки сопоставления номенклатуры, модально. В ней сканер работал, нет проблем. Если товара такого в базе не было - создавал новый, открывая его форму элемента, из этой-же формы сопоставления, тоже модально(можно было бы и не модально, но это граната для обезьян, наплодят окон, хрен разберешь потом). В нем, ВС не ловится. Но, там я как-то обошел это, уже не помню как, это в 2016 году было, как только ЕГАИС появился. Пользователи привыкли, работают, в конечном счете ШК попадают куда надо. Больше, таких задач у меня не было.
   АЛьФ
 
277 - 08.12.20 - 12:11
Возвращаясь к вопросу из (219). Набросал вот предварительно: https://yadi.sk/d/V3kC9zPVoBplXQ
Отталкивая от этого, можно уже что-то свое сделать.
   mishaPH
 
Модератор
278 - 08.12.20 - 12:16
(266) вот хочу по этому пути пойти. завтра на действующем магазине протестирую
   Злопчинский
 
279 - 08.12.20 - 12:31
(277) в 160 релизе нет такого метода?
Окна.ПолучитьРазмерТекста(_ТекстНадписи, НачальныйШрифт, РазмерТекста_Х, РазмерТекста_У);
{C:\USERS\ADMIN\DESKTOP\УЛОЖИТЬТЕКСТВНАДПИСЬ.ERT(150)}: Поле агрегатного объекта не обнаружено (ПолучитьРазмерТекста)
   Злопчинский
 
280 - 08.12.20 - 12:33
(277) ага, взял тестовую сборку из этой ветки
   Злопчинский
 
281 - 08.12.20 - 12:35
хм.. очень близко... уже радуюсь...
   АЛьФ
 
282 - 08.12.20 - 12:39
2(281) Там главная проблема - попасть достаточно близко в начальный размер шрифта. Была мысль, что площадь, занимаемая текстом, должна быть пропорциональна площади реквизита формы. Но в зависимости от размера шрифта площадь текста не линейно изменяется. Не стал уже дальше разбираться.
   victuan1
 
283 - 08.12.20 - 12:42
(277) Не попадаю размером https://prnt.sc/vy3vgh
   Злопчинский
 
284 - 08.12.20 - 12:49
а вот
Сервис.СоздатьШрифт(Настройки.ШрифтФорм,РазмерШрифта, 4)
по идее Настройки.ШрифтФорм - это должно быть наименование шрифта
а там целое множество
Настройки.ШрифтФорм = "MS Sans Serif,-11,0,400,0,0,0,0,0,204,1,2,1,34"
   АЛьФ
 
285 - 08.12.20 - 13:14
2(283)(284) Товарищи одинэсник, это не серьезно! Я думал, что тут люди, способные подогнать под себя и почистить глючки в готовой обработке.
Ну, вот исправление: https://yadi.sk/d/V3kC9zPVoBplXQ
   АЛьФ
 
286 - 08.12.20 - 13:15
Это не готовое решение, которое типа можно взять и в рабочую конфигу запихать. Это просто направление, в котором я лично вижу решение проблемы.
   Злопчинский
 
287 - 08.12.20 - 13:16
(285) Не злобствуй! если не мы - то кто бы тебя сподвиг???!!!
в этом - наша цель! ;-)
   АЛьФ
 
288 - 08.12.20 - 13:29
2(287) А должна быть цель - чтобы я набухался за ваше здоровье в Новый Год на вашу благодарность.
   Злопчинский
 
289 - 08.12.20 - 13:30
(288) Волшебник не разрешает! мы не хотим, чтобы тебя заебанили на год за алкоголизм! ;-)
   Злопчинский
 
290 - 08.12.20 - 13:32
(288) ну ты скинь в личку кошелек, я малость поспособствую.
.
тут еще хорошо бы все эти расчеты именно расчетную часть - "унутрь" метода куда-нить запихнуть, передавая в него только параметры...
бо если Уложить() в ПослеОткрытия() вписать - замедлением малость есть...
но это пока некритично...
   Злопчинский
 
291 - 08.12.20 - 13:34
..шрифт надо половинным делением подбирать, чтобы побыстрее было...
   Злопчинский
 
292 - 08.12.20 - 13:40
Погонял малость.
Практически идеально.
Иногда получается что вариант "за шаг до" - визуально выглядит правильнее, типа так
https://ibb.co/3FD3Npf

- можно как-то понять, что "за шаг до" являеется приемлемым? Типа "погрешность" в 1-2 пиксела по вертикали не является критичным..?
   АЛьФ
 
293 - 08.12.20 - 13:43
2(289) Пффф! Ерунда какая.
2(290) Нееее... Это ж от сердца должно идти. А тут получается я выпрашиваю.
2(291) Это как раз большое поле для размышлений.
2(292) Ну, так задай при вызове функции ТекстПомещаетсяПоВысоте значение параметра МаксимальнаяВысота на пару единиц больше.
   АЛьФ
 
294 - 08.12.20 - 13:45
+(293) Но если от сердца пойдет, то у меня на сайте  КЗК есть телефон, к которому карта привязана :)
   Злопчинский
 
295 - 08.12.20 - 13:45
А высота и ширина атрибута - в чем меряются?
   Злопчинский
 
296 - 08.12.20 - 13:46
(293) "А тут получается я выпрашиваю."
вот тебе и трындец, будешь теперь мучатся ;-)
   Злопчинский
 
297 - 08.12.20 - 13:50
(293) а вот совсем уже.
.
аналогичная хрень нужна и для мокселя.
в ранее приведенной ссылке я делал вывод в черновик в секцию-строку с автовысотой и проверял сколько страниц получилось, если больше 1 - значит шриaт надо уменьшать.
.
а хочется аналогичный метод типа
ЯчейкаМокселя.ЗамасштабироватьШрифт(ИмяШрифтаЕслиНетТоИзНастроекЯчейки,ТекстоваяСтрокаМБспереносами,ПредельныйМинимальноЖДопустимыйразмерШрифта)
   АЛьФ
 
298 - 08.12.20 - 13:53
2(295) Пиксели.
2(297) Хм... Надо будет моксель копануть.
   Злопчинский
 
299 - 08.12.20 - 13:57
(298) надо!
я для склада у себя сделал "печать произвольной этикетки" (бо все не напрограммишь) - вбивают в поле нужную текстовку, автомасштабирует как выше написал и получается ок. но тут плохо то, что автомасштабирвоание в проверкой вывода оно привязано к настройкам принтера...
   trad
 
300 - 08.12.20 - 14:14
(298) в личку кинул свой moxel.h
вдруг чем поможет
  1  2  3  4  5  6  7  8  9  10  11   

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.