Страницы: 1
RSS
Правый отступ в ListBox
 
Как-то раньше задавал вопрос по возмодности отслеживания элементов списка Combobox еще до их выбора. В тот раз я получил (обидно не поиню от кого, наверное это был Лузер - тема пропала) замечательное решение, правда как работает сразу не разобрался, да и времени на тот момент жалко было. Сейчас родилась идея выводить в ЛистБокс поное имя файла и его маршрута, которые не помещаются по ширине столбцов Листбокса. И разбираясь как это работает получился довольно познавательный пример, которым я хочу поделиться с интересующимися.    
 
Попутно у меня вопрос: На листБоксе аккуратно выполнены только левые отступы, если маршрут не вмещается, колонка справа коряво обрезается краем бокса. Как оформить правый отступ второго столбца?    
 
Владимир.
 
Игорь, посмотри пожалуйста.
 
Есть специальная API-функция, которая преобразует путь типа  
C:\Documents and Settings\Игорь\Local Settings\Application Data\Opera\Opera\temporary_downloads  
 
в такой вид: C:\Documents and Settings\...\temporary_downloads  
 
Можно, конечно, воспользоваться ей, но я не вижу никаких причин усложнять код.
 
Да я не к тому, чтобы укорачивать запись, шут с ней. К тому что она обрезается на линии рамки, отступ справа нужен в один символ. Ну или можно такое решение - ограничить число символов и присоединить в конце три точки ...
 
{quote}{login=VovaK}{date=01.10.2009 11:35}{thema=}{post} Ну или можно такое решение - ограничить число символов и присоединить в конце три точки ...{/post}{/quote}  
 
Можно, но для этого надо использовать моноширинный шрифт (например, Courier New)  
 
ИМХО, проще увеличить ширину столбца в листбоксе (разумеется, и ширину формы тоже)
 
{quote}{login=VovaK}{date=01.10.2009 11:35}{thema=}{post} Ну или можно такое решение - ограничить число символов и присоединить в конце три точки ...{/post}{/quote}  
Влад, посмотри такой вариант: допустим (Х) – это текстовая переменная, которой заполняется столбец ЛистБокса. Посчитали её длину. Считаем сколько символов умещается в пределах столбца ЛистБокса и отнимаем от этой величины ещё 3 (для трёх точек). Это будет N, затем пишем проверку такого типа:  
Если длина Х больше N, то Х = Left(Х, N) & "…" Иначе Х = Х  
И уже потом .AddItem Х  
Но для корректной работы такого варианта придётся в ЛистБоксе установить моноширинный шрифт.  
P.S. Вроде ничего не напутал. Если не так - прошу извинить :-)
 
Спасибо ребята уже пробую, если получится выложу.
 
Ну Вот получилось что-то где-то рядом, за исключением того, что шрифт Carier New не выдерживает никакой критики - он просто ужасен.  
 
Напрашивается заменить шрифт, но тогда необходимо измерять длину строки в дюймаж или в мм. Есть ли в VBA такая возможность?
 
{quote}{login=VovaK}{date=02.10.2009 08:22}{thema=}{post} шрифт Carier New не выдерживает никакой критики - он просто ужасен.{/post}{/quote}Ничего, что он по умолчанию в VBA стоит?  
И на нем свет клином не сошелся. Моноширных шрифтов навалом. Как, впрочем и любых других.
Bite my shiny metal ass!      
 
{quote}{login=VovaK}{date=02.10.2009 08:22}{thema=}{post} шрифт Carier New не выдерживает никакой критики - он просто ужасен.{/post}{/quote}  
Посмотрел пример - нормально шрифт отображается.
 
Правый отступ - еще один столбец с пробелом, шрифт уменьшил до 9 стал полущше
Страницы: 1
Читают тему
Наверх