Увеличить число строк списка в ComboBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Увеличить число строк списка в ComboBox

Сообщение VKS » 25.08.2011 (Чт) 11:23

дано:
ComboBox (style: DropDown List) содержащий 10-20 записей

вопрос:
как можно задать отличное от 8 число строк списка? хотелось бы задать больше.

реально?

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Увеличить число строк списка в ComboBox

Сообщение pronto » 25.08.2011 (Чт) 13:33

Конечно, реально!
Смотри на функцию MoveWindow. Особенно на её параметр nHeight...
O, sancta simplicitas!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Re: Увеличить число строк списка в ComboBox

Сообщение VKS » 25.08.2011 (Чт) 13:40

Код: Выделить всё
Sub SetComboHeight(YourCombo As ComboBox, lDropDownHeight As Long)
    Dim oldscalemode As Integer
    If TypeOf YourCombo.Parent Is Frame Then Exit Sub
    oldscalemode = YourCombo.Parent.ScaleMode
    YourCombo.Parent.ScaleMode = vbPixels
    MoveWindow YourCombo.hwnd, YourCombo.Left, YourCombo.Top, YourCombo.Width, lDropDownHeight, 1
    YourCombo.Parent.ScaleMode = oldscalemode
End Sub

нашел этот "щебень" в инете - не помогло

пока перешел на FM20.dll - но так не хочется ее с собой таскать.......

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Увеличить число строк списка в ComboBox

Сообщение pronto » 25.08.2011 (Чт) 13:46

Почему? MoveWindow объявлена?
O, sancta simplicitas!

VKS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 80
Зарегистрирован: 30.11.2006 (Чт) 15:40

Re: Увеличить число строк списка в ComboBox

Сообщение VKS » 25.08.2011 (Чт) 13:57

pronto писал(а):Почему? MoveWindow объявлена?

ну конечно объявлена.. иначе как?
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
вот как то так... а почему? скорее всего контрол не поддерживает (вообще не поддерживает) изменение кол-ва (а не их высоты!) строк в выпадающем списке.. имхо

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Увеличить число строк списка в ComboBox

Сообщение pronto » 25.08.2011 (Чт) 14:11

Хорошо, попробуй оставить вместо функции SetComboHeight строку:
Код: Выделить всё
MoveWindow YourCombo.hwnd, YourCombo.Left, YourCombo.Top, YourCombo.Width, lDropDownHeight, 1

где YourCombo — имя твоего Combo,
lDropDownHeight — высота выпадающей области, для начала выставь на 250.
O, sancta simplicitas!

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Увеличить число строк списка в ComboBox

Сообщение Twister » 26.08.2011 (Пт) 20:41

Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
const
  ITEMS_IN_COMBO = 20;
var
  i: integer;
begin

  for i := 1 to ITEMS_IN_COMBO do
    cbo.Items.Add( 'Item ' + IntToStr(i) );

  SendMessage( cbo.Handle, CB_SETMINVISIBLE, WPARAM(ITEMS_IN_COMBO), 0 );

end;
А я все практикую лечение травами...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 32

    TopList