powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
23 сообщений из 23, страница 1 из 1
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393756
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой строкой добавляю столбец в ListView (важно - это не первый столбец!):

LV.ColumnHeaders.Add , , "Заголовок", 1000, lvwColumnRight, "Dollar"

Обратите внимание на lvwColumnRight и "Dollar". Т.е хочу чтобы столбец выравнивался ВПРАВО, и помимо надписи "Заголовок", на нем красовалась иконка "Dollar" из заранее объявленного для этого ListView ImageList'а.

После заполнения данными ListView вижу ГЛЮК: этот столбец выравнен ВЛЕВО.

Дополнительная инфа: ListView лежит на наборе вкладок. Стоит перейти на другую вкладку и вернутся на эту, глюк пропадает, столбец вырывнен ВПРАВО.

Если иконку к столбце не указываю, выравнивается сразу, без глюка и смены вкладок.

Можно ли как-то добиться нормального выравнивания без передергивания вкладок? Поиск по форуму сделал ...
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393774
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не спец, но попробуй
LV.Repaint
или
LV.Refresh
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393794
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 4d_monster:

Пробовал. Не помогает :( .
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393821
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это действительно не глюк, а фича такая у Лист- и Тривью
Тебе просто "повезло", что только столбец смещается в право - обычно весь компонент уходит куда-нибудь в угол формы (из вкладки) - для решения этой проблемы надо просто сделать форме ресайзинг (если форма открыта как диалоговая - то выхода из этого я не знаю) либо "ходить" по вкладкам.

Мне помог такой самопальный способ:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Declare Function SendMessage Lib  "user32"  Alias  "SendMessageA"  _
                                     ( _
                                      ByVal hWnd As Long, _
                                      ByVal wMsg As Long, _
                                      ByVal wParam As Long, _
                                      lParam As Any _
                                      ) _
                                     As Long
на событие Form_Load:

    Const WM_SIZE As Long = &H5
    Dim lngResult As Long
    lngResult = SendMessage(Me.hWnd, WM_SIZE,  0 &,  0 &)


чтобы не было мерцания - запрети обновление экрана
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393897
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виктор, не ожидал, что так скоро объявитесь :). Я специально написал, что конфу просмотрел: именно этот код и висит у меня на событии смены вкладок. Задним числом, говорю Вам за него СПАСИБО!

Но тут и он не помогает: например вызывал его после заполнения LV данными ...
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393926
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Private Sub НаборВкладок_Change()
    Const WM_SIZE As Long = &H5
    SendMessage Me.hWnd, WM_SIZE,  0 ,  0     
End Sub
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393942
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пока не осознал, почему это фича - все-таки больше на баг похоже.
Лечится, действительно Ресайзом для форм с собственным кодом, токо я проще делаю на открытие формы так:

Me.Painting = False
l = Me.WindowWidth
DoCmd.MoveSize Width:=l + 10
DoCmd.MoveSize Width:=l
Me.Painting = True

Однако, для форм, управляемых из модуля обыкновенного класса, особенно когда именно на вкладках и при этом несколько ListView на разных вкладках бывают свои чудеса - ListView норовят периодически показываться разом или не показываться. (типа не дружат с вкладками в большом количестве) . Приходится по событию изменения набора вкладок проверять - куда попали, и , соответственно, скрывать/показывать окно ListView

Правильность отображения зависит от комбинации Office/IExplorer
Похоже, что Access2000 SP3 не глючит в этом смысле, как и XP SP2

Доп. информация
На vbAccelerator рассматривается следующее - использование listView на формах Access 2002 (XP) может приводить к краху Access при закрытии формы

Там приводится три лекарства - одно из них запомнил и использую.

Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Sub InitCommonControls Lib "comctl32.dll" ()

Далее (типа на загрузку формы)

libManipulator = LoadLibrary("Shell32.dll")
InitCommonControls

На закрытие

lngR = FreeLibrary(libManipulator)

Между прочим, приводит к весьма любопытному результату - после закрытия формы проект VBA остается закруженным и активным.
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393951
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, не помогает. Нужен способ заставить выравнять столбец вправо сразу после заполнения данными. В конце-концов, не получится, выброшу эту иконку к черту ...
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393952
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прдыдущее мое сообщение было для виктора. А по последнему сейчас разбираться буду ...
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393972
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Victosha (тоже ведь Виктор!)

Повторюсь. У меня проблема с выравниванием столбца (не первого!) в LV, ЕСЛИ в нем задано отображение иконки (см. первый месседж). Все перечисленные здесь способы у меня эту проблему не лечат.

Ради эксперимента попробуйте это у себя. Интересно, повторится или нет?

Да, сам проделываю это под A97 SR-2.
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32393996
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Alex112
>Нужен способ заставить выравнять столбец вправо сразу после заполнения данными

Жалко что не получилось, попробуй устанавливать нужные свойства столбца в дизайнере либо через объект ColumnHeader.Left

>Ради эксперимента попробуйте это у себя. Интересно, повторится или нет?

а пробовать я не буду - у меня работает (правда выравнивание столбца задаю в дизайнере - меняю только свойство иконки (при сортировке столбца) - Access2000+SP3 & mscomctl+SP6


2Victosha

Не найдешь точной ссылки про ListView на vbAccselerator?
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394011
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Senin Viktor
ссылку найду точно, только если не бегом
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394030
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Viktor

В дизайне не могу: у меня столбцы динамически меняются ...

2 All

Раз такой разговор. А кто-нибудь пробовал под VBA (не под VB!) сделать с ListView такой эффект:

http://vbnet.mvps.org/index.html?code/comctl/lvledger.htm

там на картинке все ясно.

Сам начал. Удалось сформировать нужный рисунок для LV. А вот вытаить битмап из рисунка и вставить в LV - никак :( ...
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394049
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Alex112
К сожалению, попробовать тоже не смогу, т.к почикал 97 окончательно года 2 назад (;

Вообще-то с этой темой мне все равно придется колупаться (это почти любовь) - может что умное и надыбается...
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394054
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>В дизайне не могу: у меня столбцы динамически меняются

А через объект? Что-то типа того
Set MyColumnHeader=LV.ColumnHeaders(...)
MyColumnHeader.Icon=.
MyColumnHeader.Left=..
MyColumnHeader.Text=...
(при чем столбцы уже должны существовать - у меня по этой схеме справочники работают: где 1 столбце показывается, а где 5)

>А кто-нибудь пробовал под VBA (не под VB!) сделать с ListView такой эффект:

А в чем там прикол? В динамической смене ListItem.Icon (ForeColor) ?
И в чем отличе VB от VBA - что так важно?


2Victosha

Бегом точно не надо :)
Терпел пару месяцев и еще потерплю.
Особо интересна тема краха Акеса (у меня одна глупая форма с листВью сверху которого есть подчиненая форма перидически вызывает доктора Ватсона)
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394062
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и еще - в 97 Акес можно запендюрить mscomctl из 6 версии VS - больше свойств, меньше глюков.
И сразу "пендюрь" с SP6 (6.01.9545) (на сайте Андрея Митина я куда-то его на днях слил - 430 кб)
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394064
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно - опять соврамши - в голове одна большая дырка - там не про Access XP, а про крах VB приложений, пользующих Common Controls под WIN XP

Вот ссылка
(красиво вставлять не умею)

http://www.vbaccelerator.com/home/VB/Code/Libraries/XP_Visual_Styles/Preventing_Crashes_at_Shutdown/article.asp
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394068
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394077
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Victosha

А это про стили и Manifest File. А я знал, а я знал

==
а ссылку всталять просто: надо перез http поставить // - http://...
либо выделить слово и нажать кнопочку SRC
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394123
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Viktor

А в чем там прикол? В динамической смене ListItem.Icon (ForeColor) ?
И в чем отличе VB от VBA - что так важно?


Это не ListItem.Icon и не ForeColor. Там покладывается ListView.Picture. А отличие в том, что в VBA нет такого же PictureBox как в VB. Если внимательнее там почитать, все станет ясно.

А через объект? Что-то типа того


Пробовал. Нихт арбайтэн.

mscomctl.ocx SP6 (6.01.9545) скачал, сейчас попробую...
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394133
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вау!

С версией 6.1.95.45 заработало нормально. У меня до этого стояла версия 6.0.88.62.
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394566
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не ListItem.Icon и не ForeColor. Там покладывается ListView.Picture. А отличие в том, что в VBA нет такого же PictureBox как в VB. Если внимательнее там почитать, все станет ясно.

Ну не знаю - у меня такое без всякого Пикчебокса работает, да и зачем он? Есть ImageControl с картинками - его и юзаю. Или я чего-то не допонял?
...
Рейтинг: 0 / 0
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
    #32394870
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Viktor

Или я чего-то не допонял?

ImageControl с картинками для этого случая не подойдет.

Во-первых высота background-картинки для LV должна считаться динамически, в зависимости от режима LV. Например, есть там checkbox'ы или нет, высота будет разная.

Во-вторых, если положить в ImageControl все возможные картинки с нужными размерами, поимеем другую головную боль: при изменении размеров LV, нужно будет менять весь, заранее заготовленный набор.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]