powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / управлять позициями табулятора в элементе управления ListBox
5 сообщений из 5, страница 1 из 1
управлять позициями табулятора в элементе управления ListBox
    #37512478
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, хотел опробовать пример, чтобы управлять позициями табулятора в элементе управления 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
управлять позициями табулятора в элементе управления ListBox
    #37512490
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

не тот листбокс
приведенный пример - для VB-шного листбокса, а ты поди из Forms20 поставил не разбираясь
...
Рейтинг: 0 / 0
управлять позициями табулятора в элементе управления ListBox
    #37512513
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, ну да хитро сказано, для ВБ и ВБА, я привык всё на ВБА пробовать
теперь выделяет Call SendMessage и нету на этой странице этой процедуры
Сдулся
...
Рейтинг: 0 / 0
управлять позициями табулятора в элементе управления ListBox
    #37512532
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так SendMessage надо объявить
ты не первый раз с ней сталкиваешься
...
Рейтинг: 0 / 0
управлять позициями табулятора в элементе управления ListBox
    #37512536
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / управлять позициями табулятора в элементе управления ListBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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