![]() |
|
v7: Formex, СоздатьШрифт, размер - не соответствует...? | ☑ | ||
---|---|---|---|---|
0
Злопчинский
06.05.18
✎
13:11
|
Formex 2.0.5.120
Делаю шрифт, назначаю на ТЗ на форме КодШрифт = глСервис.СоздатьШрифт("Arial Narrow",10); РасшФормы = СоздатьОбъект("РасширениеФормы"); РасшФормы.ПолучитьАтрибут("ТЗФорма").Шрифт = КодШрифт; РасшФормы = ""; Отображается явно не шрифт размером "10", а очень мелкий... что делаю не так..? @Альф, приди! |
|||
1
Попытка1С
06.05.18
✎
13:52
|
ты это делаешь после заполнения ТЗ?
и пихай все в ПослеОткрытия() |
|||
2
Попытка1С
06.05.18
✎
13:52
|
все работает
|
|||
3
Злопчинский
06.05.18
✎
21:45
|
(1) Нет, это делается в ПослеОткрытия()
Заполнение идет потом |
|||
4
Злопчинский
06.05.18
✎
21:45
|
(2) не работает, пичалька...
|
|||
5
Попытка1С
06.05.18
✎
23:55
|
(4) У меня работает.
|
|||
6
Попытка1С
06.05.18
✎
23:56
|
Версия 2.0.5.104
|
|||
7
Злопчинский
07.05.18
✎
01:49
|
(6) а закинуть мне этот Formex в скайп Zlopun..?
|
|||
8
Emery
07.05.18
✎
08:26
|
FormEx – замечательная вещь, но некоторым его возможностям приходится искать альтернативу. Насколько я понял, на модальных обработках его события, типа ПослеОткрытия() не работают. Хорошо, используем немодальные обработки. Но, тоже чудеса, дома ПослеОткрытия() у меня работает, а на работе – нет. Правда, на следующий день заработало и там.
Однако расцветка достаточно большого количества полей ввода подтормаживает отображение даже на вполне приличном компьютере. Для раскраски нужен контекст формы, который можно получить только в ПослеОткрытия() либо в Форма.ОбработкаОжидания("НекотораяПроцедура", 1), где 1 это одна секунда, что очень много, а меньше штатными средствами нельзя, а нештатными, тем же Формексом, можно, но достаточно бесполезно (если уже работает ПослеОткрытия()). Более того, если нужно проделать инициализацию начальными значениями большого количество полей ввода на обработке, то лучше это делать ПриОткрытии(), иначе нужно вызывать Форма.Обновить(), что также долго прорисовывает экран данных и сильно раздражает. Итак, что мы имеем? Если нужна немодальная обработка только для отображения данных, например месячного планового графика (см. пример в http://emery-emerald.narod.ru/Pics/PlanGraphic.png ), скажем, для корректного определения смещения в сложном плановом графике, то использование множества раскрашенных полей ввода, с нестандартными шрифтами и внешней инициализацией данных, не рационально из-за медленной прорисовки формы. Какой же выход? Можно конечно изобретать внешние компоненты, решающую данную проблему, как, скажем, с собственным, а не через формекс выводом многомегабайтного фонового изображения в 1С («семерке» и на обычных формах «восьмерки», на управляемых формах «восьмерки» можно, но практически бесполезно). Собственная ВК использует только «волшебные строки» Альфа (Фёдорова и Орефкова) и возможности WinAPI, что сразу делает ее почти универсальной. Но в данном случае проще, оказалось, использовать два штатных компонента 1С77, а именно картинки и текстовой метки. Картинка дает красивый фон (в данном случае, для часовых полей графика), а в текстовых элементах можно штатно настраивать шрифт и его цвет. И все это работает достаточно шустро и практически без формекса. В указной ссылке формекс используется только для раскраски полей смещения на произвольную дату, что, в общем-то, не принципиально |
|||
9
Попытка1С
07.05.18
✎
11:49
|
(7) На мыло тебе кинул
|
|||
10
АЛьФ
07.05.18
✎
11:59
|
КодШрифт - глобальная для модуля переменная?
|
|||
11
АЛьФ
07.05.18
✎
12:06
|
2(8) ПослеОткрытия вообще нужна только если хочется что-то показать во время открытия формы. Например, если обработка запускается и что-то долго считает, то можно организовать прогресс на форме, запустив это длительное вычисление из ПослеОткрытия. Т.е. для очень редких случаев. И реализация там заморочная.
В основном следует использовать ПослеСозданияФормы. Она надежней в работе. Раскраска контролов ничего практически не меняет в отрисовке. Просто скрытые реквизиты заполняются. Т.е. код отрисовки используется тот же и скорость меняться не должна. |
|||
12
Масянька
07.05.18
✎
12:32
|
(8) Судя по количеству буков - месье понимает толк в извращениях :)
Хорошо, что есть альтернатива... Ты попробуй найди альтернативу тормозам при отрисовке 8.3... |
|||
13
Попытка1С
07.05.18
✎
12:35
|
(11) Алексей, есть планы исправить проблему двойного вызова при открытии например формы подбора с подключенным формексом?
|
|||
14
АЛьФ
07.05.18
✎
12:50
|
2(13) Для обхода этого глюка сделан метод Сервис::ОтключитьОбновлениеПриРаскраске(1).
|
|||
15
Emery
07.05.18
✎
13:13
|
(11) > В основном следует использовать ПослеСозданияФормы. Она надежней в работе.
Раскраска контролов ничего практически не меняет в отрисовке. Да, только что проверил, использование ПослеСозданияФормы() заметно лучше ПослеОткрытия(). Возможно, объективно эффект подтормаживания отображения формы связан просто с большим количеством контролов на форме, подвергающихся раскраске. Спасибо, за подсказку! |
|||
16
Emery
07.05.18
✎
13:20
|
(12) > … извращениях :)
Любимое слово в лексиконе? :) > Ты попробуй найди альтернативу тормозам при отрисовке 8.3... 8.3 большая… Что именно имеется в виду? |
|||
17
Попытка1С
07.05.18
✎
14:25
|
(14) Спасибо проверю.
|
|||
18
Злопчинский
07.05.18
✎
16:27
|
(10) да, объявлена как глобальная в модуле обработки
|
|||
19
Злопчинский
07.05.18
✎
16:29
|
Чтобы получить шрифт визуально соответствующий 10 примерно использую размер 20-22
|
|||
20
Злопчинский
07.05.18
✎
16:30
|
Формекс, кстати, ведёт себя достаточно предсказуемо и нормально
|
|||
21
Злопчинский
07.05.18
✎
16:32
|
Я ещё обещался Альфу потестить что последние версии ругаются на нарушение прав доступа
|
|||
22
Злопчинский
07.05.18
✎
16:33
|
И ещё народ говорил что штрихкод неправильно формируется по-моему ку-код, добавляется символ 00 в конец кодируемой строки
|
|||
23
АЛьФ
07.05.18
✎
16:39
|
Итак. Второй параметр метода СоздатьШрифт() - это значение lfHeight структуры LOGFONT, которая потом передается в метода CreateFontIndirect() для создание шрифта. Из интернетов:
lfHeight Устанавливает высоту, в логических единицах измерения, символьной ячейки шрифта или символа. Значение высоты символа (также известное как em-высота) является величиной высоты ячейки символа, минус величина внутреннего межстрочного интервала. Механизм отображения логического шрифта в физический интерпретирует значение, указанное в параметре lfHeight нижеследующим способом. Значение Предназначение > 0 Механизм отображения логического шрифта в физический преобразует эту величину в единицы измерения устройства (пиксели) и приводит в его соответствие, сверяя с высотой ячейки доступных шрифтов. 0 Механизм отображения логического шрифта в физический использует заданное по умолчанию значение высоты, когда он ищет соответствие. < 0 Механизм отображения логического шрифта в физический преобразует эту величину в единицы измерения устройства (пиксели) и приводит в соответствие его абсолютную величину, сверяя с высотой символов доступных шрифтов. Из всех сравнений высоты, механизм отображения логического шрифта в физический ищет наибольший шрифт, который не выходит за пределы требуемого размера. Это отображение происходит тогда, когда шрифт используется с самого начала. Для режима отображения MM_TEXT, Вы можете использовать ниже следующее формулу, чтобы установить высоту для шрифта с заданным размером в пунктах: lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72); |
|||
24
АЛьФ
07.05.18
✎
16:41
|
2(22) Это исправлено: http://www.1cpp.ru/forum/YaBB.pl?num=1427365326/15
|
|||
25
Emery
07.05.18
✎
17:23
|
(11) + Плохо то, что числовые поля ввода не меняют (с помощью Формекс) ни размер шрифта в сторону увеличения, ни сам шрифт, они позволяют только уменьшить шрифт и делать его более «толстым» или «тонким». Это не относиться к полям ввода с другими типами данных, например, строка или дата. Так что способ использования картинок, на которые помещены прозрачные текстовые метки, может быть востребован, если требуется большая гибкость со шрифтами. Хотя, в идеале, наверное, нужна особая внешняя компонента для 1С.
|
|||
26
Emery
07.05.18
✎
18:35
|
(25) + Похоже, я поторопился. Большие шрифты не будут исчезать в числовых полях ввода, если мы установим подходящий размер для них. Другое дело, что в других типах полей ввода, значения не исчезают полностью, а только частично, т.е. могут не помещаться полностью в маленьких полях. Зато наткнулся на другую фичу. У меня не работает АтрФормы.Выравнивание. Может постепенно выясниться и этот вопрос. И тогда Формекс будет почти идеальным, т.е. с единственным «недостатком» – он сделан не нами :) .
|
|||
27
trdm
07.05.18
✎
18:35
|
(24) Леш, а что надо сделать, что-бы в таких списках ( http://prntscr.com/jevhwp ) работал поиск или нажатие буквенной клавиши устанавливало бы на нужную позицию? Это сложно?
|
|||
28
big
07.05.18
✎
19:03
|
(8) Для такого большого количества полей не рассматривали как альтернативу ТабличноеПоле или Йоксель? Или табличный вид неприемлем?
|
|||
29
Злопчинский
07.05.18
✎
21:47
|
(23) Вот это совсем ничего не понял.
|
|||
30
Злопчинский
07.05.18
✎
21:48
|
(27) ну, программно можно реализовать вроед бы...
|
|||
31
trdm
08.05.18
✎
00:57
|
(30) На все списки не напасешся.
|
|||
32
Emery
08.05.18
✎
07:04
|
(28) > Для такого большого количества полей не рассматривали как альтернативу ТабличноеПоле или Йоксель? Или табличный вид неприемлем?
Речь не идет, чтобы имитировать большое количество полей любой ценой. Вполне можно использовать и штатную таблицу в режиме ввода данных. Но хочется, чтобы это было красиво и удобно. А именно нравится когда поле внешне оформлено как стандартный элемент ввода данных, но с большими возможностями. Другими словами, хорошо было бы, если бы, например, у штатного текстового элемента была возможность создавать рамку углубления либо выпуклости и вообще больше возможностей по оформляжу, то же изменение цвета фона. ТабличноеПоле и Йоксель хороши для своих целей, но все же, если есть необходимость работать с табличными типами данных, то я больше склоняюсь к идее использования внедренного (на клиентскую форму) эксела, полноценного («Excel.Sheet», «Excel.AddIn» или «Excel.Chart») либо облегченного (веб-компонента) «OWC11.Spreadsheet» и т.п.), тем более что это решение можно сделать универсальным, посредством ВК, как для «семерки», так и для «восьмерки». Экселоподобные формы, которые я хотел бы видеть непосредственно в 1С, можно посмотреть здесь: http://emery-emerald.narod.ru/Xls/PlanGrafik24.xls . Да, это можно оформлять в виде отчетов, но удобно будет, когда они будут встроены в формы данных. Есть еще одна идея использовать эксел в режиме форм ввода данных, типа офисного продукта InfoPath либо Adobe’овского аналога. Но тут бы очень пригодилась бы возможность декора для ячеек Excel, типа их выпуклости и вогнутости, может быть это и можно делать в Экселе, но я пока не знаю как. |
|||
33
АЛьФ
08.05.18
✎
08:58
|
2(27) Именно в списках с пометками?
|
|||
34
Ёпрст
гуру
08.05.18
✎
10:08
|
(32)
>>>>у штатного текстового элемента была возможность создавать рамку углубления либо выпуклости и вообще больше возможностей по оформляжу так, что ле ? :) https://cloud.mail.ru/public/AXw4/sFzetNtTF |
|||
35
Emery
08.05.18
✎
10:49
|
(34) > так, что ле ? :)
Это все конечно круто, но в данном случае речь шла об элементе STATIC. Именно для него интересно сделать выпуклость или, лучше, «впуклость» :) Если в ваших элементах 1CEDIT: ДиалогВводаN поменять строку на число, то ничего путного из этого не выйдет. Но даже в ваших элементах 1CEDIT, как сделать выравнивание текста формексом? Поскольку ПослеСозданияФормы() работает лучше ПослеОткрытия(), то я опять возвращаюсь к варианту с раскраской числовых полей формексом. Вариант без формекса (см мою первую ссылку здесь), тоже работает неплохо, однако не надо будет заморачиваться с созданием подходящей картинки – подложки, хотя сам по себе этот вариант тоже интересен. |
|||
36
АЛьФ
08.05.18
✎
10:51
|
2(35) Попиарю чуток свою древнюю статью: http://dorex.pro/?articles&a1&p1
|
|||
37
Ёпрст
гуру
08.05.18
✎
11:20
|
(35) хочется красивостей - тупо любой активикс, хоть TText и вперёд, там и рамочки и выпуклости и выравнивание и шрифт и цвет и фон.. и хоть круглые кнопки
|
|||
38
Emery
08.05.18
✎
11:30
|
(36) Спасибо, интересно! Особенно про «пример вдавленной рамки». Но чем это принципиально отличается от использования подходящей картинки подложки?
А так, отображение красивых кнопок как бы уже не проблема, тем более что меня всегда больше интересовало красивое отображение данных. Прогресс-бар я себе организовал через маленькую обработочку с надписью «Ждите…», которая исчезает, после окончания соответствующего процесса. Закладки, как и периодические реквизиты справочников, я не использую принципиально, только кнопочные формы, т.е. вызов посредством кнопок нужных внешних форм. Заодно полностью игнорирую документы, журналы и регистры, все это вполне успешно моделируется справочниками. Вот если бы в экселе можно было бы ячейки делать «вдавленными», т.е. имеющих особую рамку, то тогда было бы особенно привлекательно использовать embedded эксел как генератор форм ввода-вывода данных для клиентских программ. Короче говоря, используя подходящие ВК (типа вашего формекса) можно делать приличные вещи даже на «семерке». Однако, как говориться, совершенству нет предела :) . |
|||
39
Emery
08.05.18
✎
11:55
|
(37) > хочется красивостей - тупо любой активикс, хоть TText и вперёд, там и рамочки и выпуклости и выравнивание и шрифт и цвет и фон.. и хоть круглые кнопки
Активикс посредством 1C++.dll? Это все замечательно, но я все же предпочитаю использовать собственный путь, через создание ВК для 1С. Просто гибкости на порядок больше. С другой стороны, красота не самоцель. Пока меня более-менее устраивает все в «семерке» плюс FormEx.dll и aiWindows.dll (для работы с табличными окнами). Даже 1Срр не сильно нужен. По большому счету текущий разговор о рюшечках, это так, к слову, немного потрындеть, чтобы голова не сильно болела от программирования. Все и так хорошо, а будет еще лучше :) . |
|||
40
Злопчинский
08.05.18
✎
14:30
|
@Альф, а ПослеСозданияФормы в текущих последних версиях Formex отрабатывает для всех форм - и открываемых обычно и открываемых модально?
|
|||
41
АЛьФ
08.05.18
✎
14:55
|
2(40) Да. Там же проблемы именно с ПослеОткрытия() были.
|
|||
42
Злопчинский
08.05.18
✎
16:33
|
(41) у мну - никогда не были. В "старых" версиях было что для модальных форм не отрабатывал ПослеОткрытия()
Приходилось так писать //******************************************************************************************************************************** // Процедура ПослеОткрытия() глЦентрироватьОкно(Форма); КонецПроцедуры // ПослеОткрытия() //******************************************************************************************************************************** // Процедура ПослеСозданияФормы() Если Форма.МодальныйРежим() = 0 Тогда Возврат; КонецЕсли; ПослеОткрытия(); КонецПроцедуры // ПослеСозданияФормы() |
|||
43
Злопчинский
08.05.18
✎
16:34
|
я так в итоге и не понял, что делать с "неадекатностью" размера шрифта...
|
|||
44
АЛьФ
10.05.18
✎
08:35
|
2(43) Использовать шрифт, у которого есть нужный размер.
|
|||
45
Злопчинский
10.05.18
✎
11:04
|
хм.. а что значит "нужный размер"..?
если в печатной форме я могу установить Arial Narrow 10 - и все норм, а на форме не прокатывает..? - это значит что нет нужного размера? и если я через формекс устанавливаю СоздатьШрифт("Arial Narrow",22) - а вижу в итоге что созданный шрифт по размеру эквивалентен существенно меньшему, в районе 10-12 - это норм? |
|||
46
АЛьФ
10.05.18
✎
11:10
|
2(45) Если кратко, то да, норм.
|
|||
47
Злопчинский
10.05.18
✎
14:47
|
(46) ...то есть для форм подбор нужного размера шрифта для СоздатьШрифт(...) - исключительно эмпирически?
|
|||
48
АЛьФ
10.05.18
✎
14:53
|
2(47) Не, ну почему же? В соответствии с (23).
|
|||
49
АЛьФ
10.05.18
✎
14:54
|
2(47) Можешь мне сделать тестовую обработку? Есть мысль, которую хотелось бы проверить.
|
|||
50
trdm
10.05.18
✎
15:49
|
(33) > Именно в списках с пометками?
да. но поиск полезен и в комбо-боксах. там есть поиск по первым буквам, но этого зачастую маловато. |
|||
51
АЛьФ
10.05.18
✎
16:01
|
2(50) Для комбобоксов есть метод АтрибутФормы::ПерехватитьСписокЗначений().
Список без пометок ловит первые буквы и сам. А вот с пометками... Тут надо подумать... |
|||
52
Злопчинский
10.05.18
✎
16:27
|
(49) ща, наваляю
|
|||
53
Злопчинский
11.05.18
✎
02:34
|
...читать как "наваяю"
|
|||
54
Злопчинский
11.05.18
✎
02:40
|
(49) Отправил на мыло
|
|||
55
АЛьФ
11.05.18
✎
10:08
|
Значит так. Зашил в создание шрифта формулу из (23). Эх, полетят у народа шрифты...
Качать тут: https://yadi.sk/d/X9nusoEy3VhwGS Попутно: там есть новый метод Сервис::ПоказатьКалендарь(<Дескриптор>, <Дата>). Открывает встроенный календарь для выбора даты. <Дескриптор> - дескриптор окна, к которому привязывается выбор. <Дата> - переменная, содержащая начальную дату при выборе и в которую возвращается выбор. Пример: НоваяДата = ТекущаяДата(); атр = СоздатьОбъект("АтрибутФормы"); атр.УстановитьАтрибут(Форма, "кнКалендарь"); Если глСервис.ПоказатьКалендарь(атр.Дескриптор, НоваяДата) = 1 Тогда Сообщить(НоваяДата); КонецЕсли; |
|||
56
Злопчинский
11.05.18
✎
12:03
|
обновил Formex - поменялись шрифты... сейчас проверим..
во, уже поближе к правде... в тестовой обработке при задании размера 20 и снятия скриншота - строчная "е" в надписи имеет высоту 15 пикселей - строчная "е" в ТЗ имеет высоту 12 пикселей |
|||
57
Злопчинский
11.05.18
✎
12:05
|
ой, соврал. в (56) - не читать
|
|||
58
АЛьФ
11.05.18
✎
12:19
|
2(57) Точного совпадения в любом случае не будет. Т.к. неизвестно как создает шрифт 1С для отрисовки. Если надо получить вот прям один в один, то вешаешь на форму текстовый реквизит, в котротом устанавливаешь нужный шрифт и пишешь:
РасшФормы.ПолучитьАтрибут("ТЗФорма").Шрифт = РасшФормы.ПолучитьАтрибут("тТест").Шрифт; |
|||
59
Злопчинский
11.05.18
✎
12:28
|
Потестил (корректно отрабатывает даже для размера = 0 ;-)
Для шрифта крупного размера совпадение практически 1-в-1 для мелких - расхождения. например для 10 - в ТЗ выглядит ~6 |
|||
60
АЛьФ
11.05.18
✎
12:29
|
2(59) 0 - это размер по умолчанию. Отрицательно значение - это без учета полей (чуть больше будет шрифт).
|
|||
61
Злопчинский
11.05.18
✎
12:33
|
(60) вот только что обнаружил, до твоего этого поста - что если задать отрицательное значение - то получается ваще няшно!
размер = -10 - совпадает визуально с размером текстового реквизита с таким шрифтом назначенным штатно через свойства! отправил на почту поправленную тестовую обработку |
|||
62
Злопчинский
11.05.18
✎
12:33
|
Можешь ее положить на яндекс-диск - пусть народ забирает для подбора шритфа
|
|||
63
Злопчинский
11.05.18
✎
12:41
|
@АЛьФ - крут! раз! и проблема решена. четко и понятно.
не то что эти восьмерочники... |
|||
64
АЛьФ
11.05.18
✎
12:55
|
2(63) На самом деле редкость. Праздничная неделя, работать не охота :)
|
|||
65
Злопчинский
11.05.18
✎
13:00
|
(64) То есть тебе нужен волшебный пендель? ;-)
|
|||
66
АЛьФ
11.05.18
✎
13:19
|
2966) А то!
|
|||
67
Злопчинский
11.05.18
✎
13:44
|
(66) я записал...
|
|||
68
Злопчинский
13.05.18
✎
23:25
|
@АЛьФ, а можно как-то в ТЗ убрать строку заголовков столбцов?
|
|||
69
АЛьФ
14.05.18
✎
09:38
|
2(68) РасшФормы.ВысотаЗаголовкаТаблицы("ТЗФорма", 0);
|
|||
70
Злопчинский
14.05.18
✎
10:44
|
(69) Спасибо.
работает. раньше пробовал - были какие-то траблы. сейчас - отлично. |
|||
71
Злопчинский
14.05.18
✎
11:04
|
(69) А можно ли как-то убрать вправый (вертикальный) скролл-бар?
|
|||
72
АЛьФ
14.05.18
✎
11:43
|
2(71) Можно попробовать через стили. Но тут я с ходу не подскажу.
|
|||
73
Злопчинский
14.05.18
✎
11:54
|
(72) А волшебный пендель...?! ;-)
будет возможность - посмотри на досуге |
|||
74
trdm
14.05.18
✎
12:00
|
(73) Через стиль вполне себе получается.
|
|||
75
trdm
14.05.18
✎
12:02
|
WS_VSCROLL убираешь и радуешся.
|
|||
76
Злопчинский
14.05.18
✎
12:05
|
(75) я не пргрграммер. я девЕлопер ;-)
мне нужно типа РасшФормы.ВертикальныйСкроллбар("ТЗформа",-1); //убрать скролл бар РасшФормы.ВертикальныйСкроллбар("ТЗформа",1); //показать скролл бар |
|||
77
Злопчинский
15.05.18
✎
15:43
|
И шо? и тишина... и только зомби с косами(зачеркнуто) клюшками стоят...
|
|||
78
АЛьФ
15.05.18
✎
15:54
|
2(77) РасшФормы.ПолучитьАтрибут("ТЗФорма").ИзменитьСтиль(2097152);
|
|||
79
Злопчинский
15.05.18
✎
19:23
|
(78) А откуда брать волшебные числа, которые в скобочках?
|
|||
80
Злопчинский
15.05.18
✎
19:41
|
(78) Попробовал. Бьюсь в экстазе пацтулам! То что надо. А я столько лет мучился...
|
|||
81
Злопчинский
15.05.18
✎
19:42
|
(78) А как показать скроллбарр обратно?
|
|||
82
Djelf
гуру
15.05.18
✎
20:22
|
(81) Есть обработка от alyuev: http://www.1cpp.ru/forum/YaBB.pl?num=1345736013
|
|||
83
Злопчинский
15.05.18
✎
22:03
|
(82) О, спасибочки, а то я только хотел спросить как менять стил линий разлиновки ТЗ - может найду если покопаюсь
|
|||
84
Злопчинский
16.05.18
✎
00:31
|
(83) ... не нашел...
|
|||
85
trdm
16.05.18
✎
00:52
|
(83) этот контрол просто так не сдастся.
|
|||
86
АЛьФ
16.05.18
✎
09:48
|
2(83) Вот этого уже не изменить. Если нужны такие извраты, то лучше свой грид какой-то сделать или готовый найти.
|
|||
87
Злопчинский
16.05.18
✎
21:59
|
(86) понятно, сдулись.. ;-)
но раз нет, то нет - эта хотелка уже действительно из праздела извртов ;-) |
|||
88
botman4
16.05.18
✎
22:49
|
(34) Как ты такое делаешь? Это магия? ))
как ты спрятал все реквизиты? расскажи ) |
|||
89
trdm
16.05.18
✎
22:53
|
(87) не ну возможно все на этом свете, но какой ценой...
|
|||
90
Попытка1С
16.05.18
✎
22:56
|
(88) Блокнотом
|
|||
91
botman4
16.05.18
✎
23:00
|
(90) можно чутка подробнее?
Пожалуйста ) |
|||
92
Попытка1С
16.05.18
✎
23:08
|
(91) Через блокнот правит нужные параметры прямо в ert шке.
|
|||
93
botman4
16.05.18
✎
23:09
|
(92) после сохранения не открывается. ругается на неправильный формат файла.
Нужно удалить слой походу на котором расположен реквизит. |
|||
94
Попытка1С
16.05.18
✎
23:14
|
(93) Ну там не все так топорно) Я уже на память не помню, давно было, но описание формата где то проскакивало.
|
|||
95
Попытка1С
16.05.18
✎
23:15
|
Еще была альтернативная среда разработки для 7.7 тоже умела всякие штуки делать.
|
|||
96
botman4
16.05.18
✎
23:21
|
(95) пробовал в Интелегенте, валится с ошибкой.
Получилось открыть файл в 7-zip, но что делась с этими файлами пока не догнал ) |
|||
97
botman4
17.05.18
✎
00:07
|
Ха, получилось )))
Visual gcomp |
|||
98
Злопчинский
18.05.18
✎
17:50
|
(86) Альф,
а вот можно ли такую фишку провернуть, типа -я хочу определять размер страницв ТЗ - то есть сколько строк в ТЗ вмещается в видимую часть ТЗ. то есть типа ТЗФорма.РазмерСтраницы() - возвращает количество строк видимой на экране визуальной формы ТЗ (независимо есть записи в ТЗ или нет). и например если я на тЗ назначил шрифт, то беру и и снова делаю ТЗФорма.РазмерСтраницы() - и получаю новое количество ????? |
|||
99
Злопчинский
18.05.18
✎
17:58
|
Альф и иже с ним спецы:
позарез хочется автомасштабирование текста . например, есть форма. на нее положили "Текст". В тексте вызываем функцию и хочется чтобы текст, возвращаемый этой функцией, автомасштабировался в текстовый контрол (тот который буквочка Т) т.е. хочется иметь некий механизм для начала типа хотя бы ФункцияОценкаВлазения(Форма.тКонтрол,СтрокаКакоготоТекста) - возвращает 1 если СтрокаКакоготоТекста полностью влазит/отображается в тКонтрол и 0 - если не влазит (то есть часть текста не будет видан на форме) ??????? вот эта фигня ну капец как хочется. как смасштабировать текстпри выводе печатной формы чтобы он вмещался в ячейку фиксированного размера - я знаю (независимо от шрифта и прочего). но вот как такую же хрень провернуть для текстовогоКонтрола на форме... хочется иметь ме |
|||
100
Масянька
18.05.18
✎
18:00
|
Соточка.
|
|||
101
Злопчинский
19.05.18
✎
17:39
|
Ап
|
|||
102
АЛьФ
21.05.18
✎
10:58
|
2(98) Есть метод РасширениеФормы::ПолучитьКоординатыЯчейки(). С помощью него и вычисления координат контрола самой ТЗ можно вычислить количество видимых строк.
2(99) Эмпирически вычислить коэффициент нужного шрифта относительно экранных размеров контрола. Будет самым простым. |
|||
103
Злопчинский
21.05.18
✎
11:37
|
(102)
по (98) учтем по (99) много шрифтов и вариантов (болд, италик). вдобавок зависит от возможности переноса строк на пробелах. короче: не пойдет ибо слишком муторно |
|||
104
АЛьФ
21.05.18
✎
12:01
|
2(103) Не вопрос. Предложи другое решение.
|
|||
105
Злопчинский
21.05.18
✎
12:19
|
(104) умный какой... ;-) спрашивал бы я если бы знал другое приемлемое решение...
|
|||
106
Злопчинский
21.05.18
✎
12:19
|
(104) вариант-то есть, менее геморный, но интерфейсно неподходящий и тормозной
|
|||
107
Sserj
21.05.18
✎
12:23
|
Ксати АЛьФ а чем закончилась история с разработкой переноса больших баз в SQL?
Удалось победить или так и осталось в состоянии выгружается, но при загрузке ругается? |
|||
108
Злопчинский
21.05.18
✎
12:30
|
Кстати, 133 релиз Formex'а имхо работает как-то устойчивее чем предыдущий какой я использовал. По крайней мере у этого нет глюков (пока не наталкивался) с "неотработкой" ПослеОткрытия - на старом формексе регулярно были ситуации когда ПослеОткрытия как-то не так отрабатывал, сейчас - все ожидаемо. Но пока точно непонятно, ибо сейчас разработку веду на домашнем компе, а ранее - на серваке...
|
|||
109
АЛьФ
21.05.18
✎
12:36
|
2(107) Пока осталось в таком состоянии. Если клюнет жареный петух на работе, буду срочно доделывать.
|
|||
110
АЛьФ
21.05.18
✎
12:36
|
2(105) Воооот...
2(106) Так озвучь, может чего покумекаем сообча. |
|||
111
Злопчинский
21.05.18
✎
12:51
|
(110) автоподбор шрифта можно выполнить без особых проблем в печатной форме. Например, я так подбираю шрифт для печати всяких складских этикеток, используя тестовый вывод и КоличествоСтраниц().
Может на форму положить некое "текстовое" поле типа Йокселем табличный документ или ТЗ из одной строки с возможностью переноса строки в ячейке ТЗ (такое есть?) - и ширину такого объекта сделать "равной" ширине текстового контрола и выводить в такой контрол текст и смотреть высоту получившейся конструкции (высоту ячейки ТЗ или ячейки Йокселя) и сравнивать ее с размером текстовго контрола...? |
|||
112
Djelf
гуру
21.05.18
✎
14:51
|
(111) Йоксель на форму не обязательно.
Да, так сработает - автоширина области и подбор шрифта, сначала грубо коэффициентом, потом можно точнее. Только все равно как то оно для шрифтов больше 14 не правильно считает... |
|||
113
АЛьФ
21.05.18
✎
15:50
|
А может проще будет поискать ActiveX какой-нибудь вместо текста?
|
|||
114
Злопчинский
21.05.18
✎
16:36
|
(113) какой?
|
|||
115
trdm
21.05.18
✎
16:41
|
(109) Ну, dat-файл - это просто текст. Его парсить и выполнять, думаю там работы не особо много.
|
|||
116
Злопчинский
21.05.18
✎
16:43
|
(112) то есть ты предлагаешь примерно так:
1. имеем форму с контролом "Текст" ширины Текст.Ш и высоты Текст.В 2. пристегиваем к форме таблицу Таб с единственной секцией и единственной ячейкой, автовысота=1, автоперенос=1 3. Выводим Таб, в нее секцию (без показа на экран) 3. Считываем ширину Текст.Ш 4. Устанавливаем ширину столбца Таб = Ш 5. Выводим в Таб наш произвольный текст 6. Считываем получившуюся высоту секции таблицы (как? и без вывода на экран сработает? 7. Сравниваем высоту секции с Текст.В 8. Если п.7 не удовлетворяет - меняем размер шритфа в выведенной секции и см. снова с п.6 9. Если удовлетворяет - имеем примерный достаточно точный размер шрифта и назначаем его на Текст на форме - так? |
|||
117
Djelf
гуру
22.05.18
✎
09:14
|
(116) Да, примерно так. В йокселе расчеты сработают и без показа на экран.
Но как я и говорил считает как то не совсем точно. В коде все строго по mfc, я проверял. Но и excel точно так же (по виду) считает. |
|||
118
Djelf
гуру
22.05.18
✎
09:25
|
А вот пример реализации подбора размера на mfc: https://stackoverflow.com/questions/29825498/sizing-font-to-fit-in-a-rectangle
Примерно то же самое и на йокселе получится. |
|||
119
Злопчинский
22.05.18
✎
19:03
|
(118) ок. попробую.
а как соотносится высота текстовго контрола на форме и высота ячейки таблицы йокселя? 1-к-1..? |
|||
120
Djelf
гуру
22.05.18
✎
19:19
|
(119) Увы, в твипах! http://yoksel.net.ru/Ob'ektyVstroennogoJazyka/Oblast'TablichnogoDokumenta/Rasschitat'Razmery
Но пересчитать не сильно сложно https://ru.wikipedia.org/wiki/Твип подогнать коэффициент чтобы чуток с запасом влезало и, имхо, срастется. |
|||
121
MadDAD
24.05.18
✎
10:34
|
(98)
Функция ВидимыхСтрокТЗ(ИмяТЗ, Форма) Высота = 0; Верх = 0; Низ = 0; РасшФормы = СоздатьОбъект("РасширениеФормы"); РасшФормы.УстановитьФорму(Форма); РасшФормы.ПолучитьАтрибут(ИмяТЗ).ПолучитьКоординаты(0, 0, 0, Высота); РасшФормы.ПолучитьКоординатыЯчейки(ИмяТЗ, 1, 1, верх, 0, Низ, 0, 0); Высота = Высота - 7; ВысотаСтроки = Низ - Верх + 1; КоличествоСтрок = (Высота - ВысотаСтроки) / ВысотаСтроки; Возврат КоличествоСтрок; КонецПроцедуры |
|||
122
Злопчинский
25.05.18
✎
17:57
|
(121) А количество строк многострочной части списка (журанала, списка справочника, ТЧ документа) - получить так можно?
|
|||
123
Злопчинский
25.05.18
✎
18:05
|
(121) а что за волшебный оператор (остальное понятно)
Высота = Высота - 7; ??? |
|||
124
Злопчинский
25.05.18
✎
18:13
|
(121) считает в целом вроде норм... даже для многострочных ТЗ (устанавливаемых через формекс)
но.. вот например выдается такая цифра 18:10:51: после открытия: количество строк = 5.02083333333333333333 . здесь как бы понятно.. для точного значения можно добавить 0.5 и взять ЦЕЛ . а вот если получится, например, = 4.98 - это неточно посчиталось (можно принять как 5) или действительно влазит полностью всего 4 строки..? |
|||
125
MadDAD
28.05.18
✎
08:22
|
(124)
"Высота = Высота - 7;" пояивлось после того как я взял экранную линейку и сравнил в пикселях то что возвращает РасшФормы.ПолучитьАтрибут(ИмяТЗ).ПолучитьКоординаты(0, 0, 0, Высота) и то что я вижу на линейке. Разница в 7 пикселей, за счет рамок, теней и чего-то еще. Если получиться 4.98, это будет означать что ячейка будет видна почти полностью, но текст в ней не отрисован, т.к. 1С считает что, он не влез. Т.е. по факту это 4 с текстом. Так что самый правильный вариант брать Цел() |
|||
126
MadDAD
28.05.18
✎
08:24
|
(122) А тут хз, не пробовал. Если получится с многострочной частью работать как с ТЗ, то думаю, получится
|
|||
127
Злопчинский
17.06.18
✎
19:45
|
@Альф, на dorex.pro лежит 131 версия, а у меня внезапно 133 обнаружилась.. это верно, что 133 есть уже?
|
|||
128
Злопчинский
19.06.18
✎
14:33
|
Правильные размеры шрифтов дает 133
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |