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

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

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

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

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

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

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

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

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

Код: 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
30.01.2004, 15:16
    #32393897
Alex112
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
Виктор, не ожидал, что так скоро объявитесь :). Я специально написал, что конфу просмотрел: именно этот код и висит у меня на событии смены вкладок. Задним числом, говорю Вам за него СПАСИБО!

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

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

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

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

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

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

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

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


2Victosha

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

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

2 All

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

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

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

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

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

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

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

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


2Victosha

Бегом точно не надо :)
Терпел пару месяцев и еще потерплю.
Особо интересна тема краха Акеса (у меня одна глупая форма с листВью сверху которого есть подчиненая форма перидически вызывает доктора Ватсона)
...
Рейтинг: 0 / 0
30.01.2004, 16:35
    #32394062
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
Да, и еще - в 97 Акес можно запендюрить mscomctl из 6 версии VS - больше свойств, меньше глюков.
И сразу "пендюрь" с SP6 (6.01.9545) (на сайте Андрея Митина я куда-то его на днях слил - 430 кб)
...
Рейтинг: 0 / 0
30.01.2004, 16:35
    #32394064
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
Собственно - опять соврамши - в голове одна большая дырка - там не про 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
30.01.2004, 16:37
    #32394068
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
...
Рейтинг: 0 / 0
30.01.2004, 16:42
    #32394077
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь СПЕЦИАЛИСТА по глюкам ListView ...
2Victosha

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

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

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


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

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


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

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

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

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

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

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

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

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


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