Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / управлять позициями табулятора в элементе управления ListBox / 5 сообщений из 5, страница 1 из 1
05.11.2011, 11:17
    #37512478
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управлять позициями табулятора в элементе управления ListBox
Здравствуйте, хотел опробовать пример, чтобы управлять позициями табулятора в элементе управления ListBox
'создайте форму, на которой разместите
'элемент списка lstMyListBox
'две командные кнопки Command1 и Command2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Option Explicit

Private Const LB_SETTABSTOPS = &H192

Private Sub Form_Load()
  ' Начальное формирование списка
  ' с тремя колонками, разделенными символом vbTab = Chr$(9)
  lstMyListBox.AddItem "Колонка11" & vbTab & "Колонка12" _
         & vbTab & "Колонка13"
  lstMyListBox.AddItem "C21" & vbTab & "C22" _
         & vbTab & "C23"
End Sub

Private Sub Command1_Click()
  ' одинаковое расстояние в 52 позиции (13 символов)
  Call SetListTabStops(lstMyListBox,  52 )
End Sub

Private Sub Command2_Click()
  ' переменное расстояние (10 и 30 символов)
  Call SetListTabStops(lstMyListBox,  40 ,  120 )
End Sub

Public Sub SetListTabStops(MyListBox As ListBox, _
               ParamArray ParmList() As Variant)
  'Коррекция позиции Tabs в списке ListBox
  '
  ' Для передачи переменного числа однородных параметров
  ' используется конструкция ParamArray
  ' ВНИМАНИЕ! Нижний индекс ParmList равен 0
  ' даже при Option Base 1!!!
  ' Позиция табулятора определяется в специальных величинах
  ' окна, которая в среднем равна 1/4 символа

  Dim i As Long
  Dim NumColumns As Long
  '
  ' формирование массива для установки табуляторов
  ReDim ListTabs( 0  To UBound(ParmList)) As Long
  For i =  0  To UBound(ParmList)

          ListTabs(i) = ParmList(i)
  Next i
  NumColumns = UBound(ParmList) +  1 
  '
  ' установка новых значений позиций табулятора
  Call SendMessage(MyListBox.hWnd, LB_SETTABSTOPS, _
   NumColumns, ListTabs( 0 ))
  ' вывести новое изображение списка
  lstMyListBox.Refresh
End Sub
Упирается, не нравится ему строка lstMyListBox.Refresh
Подсажите почему не нравится, как правильно
Спасибо
...
Рейтинг: 0 / 0
05.11.2011, 11:31
    #37512490
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управлять позициями табулятора в элементе управления ListBox
Ципихович Эндрю,

не тот листбокс
приведенный пример - для VB-шного листбокса, а ты поди из Forms20 поставил не разбираясь
...
Рейтинг: 0 / 0
05.11.2011, 12:10
    #37512513
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управлять позициями табулятора в элементе управления ListBox
Shocker.Pro, ну да хитро сказано, для ВБ и ВБА, я привык всё на ВБА пробовать
теперь выделяет Call SendMessage и нету на этой странице этой процедуры
Сдулся
...
Рейтинг: 0 / 0
05.11.2011, 12:46
    #37512532
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управлять позициями табулятора в элементе управления ListBox
так SendMessage надо объявить
ты не первый раз с ней сталкиваешься
...
Рейтинг: 0 / 0
05.11.2011, 12:52
    #37512536
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
управлять позициями табулятора в элементе управления ListBox
Shocker.Pro, если просто объвить, то это легко

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
'создайте форму, на которой разместите
'элемент списка lstMyListBox
'две командные кнопки Command1 и Command2

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

Option Explicit

Private Const LB_SETTABSTOPS = &H192

Private Sub Form_Load()
  ' Начальное формирование списка
  ' с тремя колонками, разделенными символом vbTab = Chr$(9)
  lstMyListBox.AddItem "Колонка11" & vbTab & "Колонка12" _
         & vbTab & "Колонка13"
  lstMyListBox.AddItem "C21" & vbTab & "C22" _
         & vbTab & "C23"
End Sub

Private Sub Command1_Click()
  ' одинаковое расстояние в 52 позиции (13 символов)
  Call SetListTabStops(lstMyListBox,  52 )
End Sub

Private Sub Command2_Click()
  ' переменное расстояние (10 и 30 символов)
  Call SetListTabStops(lstMyListBox,  40 ,  120 )
End Sub

Public Sub SetListTabStops(MyListBox As ListBox, _
               ParamArray ParmList() As Variant)
  'Коррекция позиции Tabs в списке ListBox
  '
  ' Для передачи переменного числа однородных параметров
  ' используется конструкция ParamArray
  ' ВНИМАНИЕ! Нижний индекс ParmList равен 0
  ' даже при Option Base 1!!!
  ' Позиция табулятора определяется в специальных величинах
  ' окна, которая в среднем равна 1/4 символа

  Dim i As Long
  Dim NumColumns As Long
  '
  ' формирование массива для установки табуляторов
  ReDim ListTabs( 0  To UBound(ParmList)) As Long
  For i =  0  To UBound(ParmList)

          ListTabs(i) = ParmList(i)
  Next i
  NumColumns = UBound(ParmList) +  1 
  '
  ' установка новых значений позиций табулятора
  Call SendMessage(MyListBox.hWnd, LB_SETTABSTOPS, _
   NumColumns, ListTabs( 0 ))
  ' вывести новое изображение списка
  lstMyListBox.Refresh
End Sub

Спасибо!!!, записал в свою тетрадку
PS ветка по dll шибко интерисует
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / управлять позициями табулятора в элементе управления ListBox / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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