Страницы: 1
RSS
Формы. Как исправить "обрезанное" отображение данных в ListBox
 
Доброго времени суток, Планетяне!

При определённом стечении обстоятельств (зависит от массива, передаваемого в форму) данные в ListBox'е формы выглядят "обрезанными" и неудобно искать в таком списке. Решение, которое нашёл — использовать ListStyle=1 (Option). Самый нормально отображаемый (всё равно недостаточно) шрифт из популярных — TimesNewRoman (пробовал Calibri, Arial и моноширинные — не то).

Можно ли как-то ещё побороть такую фигню?
Подобная проблема, кстати, наблюдалась также и в известном DropDownList от nerv'а…
Изменено: Jack Famous - 18.09.2018 15:41:59
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, как вы такое получили. Сколько не играл со шрифтами в ListBox ни разу такого не видел. А Repaint пробовали?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Alemox: как вы такое получили
шрифт Courier вообще жуть (см. скрин 1). На втором - настройки ListBox  по категориям :D
С TimesNewRoman всё почти нормально - только у букв "р" и "у" нижние "хвосты" обрезает (скрины 3 и 4). При выделении уже всю строку немного режет.
Цитата
Alemox: Repaint
что это?
Изменено: Jack Famous - 18.09.2018 14:21:19
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Более похоже на артефакты видео рендеринга. На всех компах такое?
По вопросам из тем форума, личку не читаю.
 
Сколько работаю с формами, а такого не наблюдал. Видеокарту в утиль :)
 
Цитата
vikttur написал:
Видеокарту в утиль
Виктор, это у Вас настрой от умершего HDD :-),

Jack Famous, Cперва нужно драйверочки проверить.
Изменено: БМВ - 18.09.2018 14:33:39
По вопросам из тем форума, личку не читаю.
 
vikttur, нормально всё с ней, я думаю — иначе не только бы в ListBox шалило  :D
БМВ, в DropDown такая же фигня была на длинных строчках, и было это года 2 назад уже… Так что вряд ли дрова. Тем более, что TNR же практически нормально отображает.

Но самое главное, что форма лежит внутри надстройки и меняются только данные для неё. Получается, что отображение меняется в зависимости от данных (только что заметил) хотя в обоих случаях передаю одномерный массив (ключи словаря dic.Keys)  8-0
Изменено: Jack Famous - 18.09.2018 15:08:21
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
что это?
Перерисовать форму после заполнения Listbox.
Me.Repaint
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Зачем перерисовывать все?
.List.Clear и заполнить опять
 
Добавил форму в шапку (должна работать). При таком наполнении артефакты не проявляются.

Заметил, что при ListStyle=1 (Option) количество элементов рассчитывается корректно — с pt от 8 до 11 (включительно) количество видимых элементов ListBox без прокрутки одинаковое, потом начинает уменьшаться (без искажений). Сделал вывод, что размер этих OptionButtons соответствует 11 величине шрифта TNR  :)

Получается, что при ListStyle=0 (Plain) некорректно рассчитывается количество элементов при определённых условиях (условия определить не удалось). При этом, если выставить "автовысоту" IntegralHeight=True (точно не гуглил, что это), то список вообще при поиске начинает "сползать" за форму (вниз)  :D
Изменено: Jack Famous - 18.09.2018 15:38:29
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Добавил форму в шапку
не понял фразы. В какую шапку?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, в заголовок темы (первое сообщение)  :D

UPD: новый прикол. С кнопками при пограничном размере шрифта в 11pt (макс. количество элементов в списке без скролла) он всё-равно немного "обрезает". Зато можно выставить 8-10pt и всё норм  :)
Без "кнопок" (plain) игры с величиной шрифта не канают…
Изменено: Jack Famous - 18.09.2018 15:49:37
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, я не понял одного. Как вы сделали чтобы текст уменьшался в размере в зависимости от ширины столбца?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, (см. скрин) это не уменьшение шрифта, а только визуальное "втискивание". Удивлён, что вы не знаете…
Изменено: Jack Famous - 18.09.2018 17:02:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
втискивание
никогда не загонялся этим.
По теме. Интересно получается. Открывал на работе форму несколько строк были обрезаны как раз те, которые визуально уменьшены. Но вполне смотрибельно. Открыл дома всё ОК.
Дома W7x86, Office 2010 x86.
На работе W7x64, Office 2013 x64.
Скрин как дома отображается
Изменено: Alemox - 18.09.2018 19:13:45
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
OFF
Alemox, когда поле содержит длинные строки, бывает очень удобно. Поставил себе по-умолчанию (кроме шапки в первой строке)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Всё таки наверное что-то от видюхи зависит или ещё каких дров в системе.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, а у меня файл-пример нормально отображается (win7, x64), а вот рабочий барахлит в зависимости от данных…
Наверное вы все правы по поводу проблем с софтом, но я никак не пойму — как так можно: форма одна, а отображается по-разному…

И как мне теперь вычленить эту проблему с софтом, чтобы решить — ума не приложу… Тупо обновлять дрова?…  :(
Изменено: Jack Famous - 19.09.2018 10:19:38
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Тупо обновлять дрова?…  
Не верное решение, нужно прочитать что обкуренный медведь пишет в #4 и #6  и подойти творчески посмотреть что, за чип(карата) какие драйвера есть у производителей. Не всегда последние самые лучшие, не всегда исходные хуже остальных. Были случаи, но это касаемо ноутбуков, когда драйвера от производителя ноутбука работали более корректно чем от производителя чипа. Да и сейчас с обновлениями от MS могут прилететь драйвера которые работают хуже чем были. Совершенно недавно был пример, Synoptic прилеталл и все с виду хорошо, только тачпэд прекращал работать.
По вопросам из тем форума, личку не читаю.
 
БМВ, то, что с умом надо подходить — оно, конечно бесспорно, но почему "глюк видяхи" сбоит ТОЛЬКО в Excel, ТОЛЬКО в UserForm, ТОЛЬКО в ListBox и ТОЛЬКО с разными данными. Получается, что у Alemox тоже проблемы?))) Я думаю, что дело всё-таки в Excel (сборка, конфликты и прочее).
Решение через Option пока устраивает, так что спущу на тормозах  :D

P.S.: Если кто "побеждал", то протестирую способ  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
но почему "глюк видяхи" сбоит ТОЛЬКО в Excel, ТОЛЬКО в UserForm, ТОЛЬКО в ListBox и ТОЛЬКО с разными данными
Алексей, ну вы же не проводите крупномасштабный тест с использованием кейсов из разных областей, которые могут выявить проблемы и в других программа, объектах ..... Просто у Вас всплыл этот баг.
К слову я не гарантирую, что это реально драйвера, но проверить надо. Для начала на ПК который имеет другую конфигурацию железа. К стати элементарная виртуалка  уже покажет есть ли завязка на железо или нет. Потом ОС, потом версию Excel. У меня на 2013 не воспроизводится на вашем файле проблема.
По вопросам из тем форума, личку не читаю.
 
БМВ, так у меня тоже на примере не воспроизводится - в том-то и беда))) то ли в длине строк дело, то ли ещё что-то. Не понимаю.

Спасибо вам за варианты — если доберусь до полномасштабной "разборки", то отпишусь. Ну и вообще по новостям тоже отпишусь))
Изменено: Jack Famous - 19.09.2018 13:06:19
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх