Проблема с List в ComboBox

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

Проблема с List в ComboBox

Сообщение Rodos » 02.11.2005 (Ср) 17:39

Появилась такая проблема. В свойстве List элемента ComboBox не отображается первый символ, вместо него появляется квадратик. Но если пишешь два символа или ставишь перед ним пробел все отображается нормально.

Я обнаружил это, когда открыл готовую форму, где в List были 1, 2, .., 10.. и т.д. Причем при первом открытии List все отобразилось нормально, а при повторном появились те самые квадратики, у всех чисел до 10. И если скомпелировать этот проект, то и в нем тоже есть эта ошибка.

В чем может быть дело?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.11.2005 (Ср) 17:55

Проект в студию.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Rodos
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 10.10.2005 (Пн) 22:07
Откуда: Москва

Сообщение Rodos » 02.11.2005 (Ср) 18:06

Вот
Вложения
ComboBox.rar
(3.21 Кб) Скачиваний: 48

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.11.2005 (Ср) 18:13

Лично у меня работает всё. А если добавлять пункты в run-time?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Rodos
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 10.10.2005 (Пн) 22:07
Откуда: Москва

Сообщение Rodos » 02.11.2005 (Ср) 18:19

И Ехешник тоже работает?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.11.2005 (Ср) 18:38

У тебя в пункты Combo добавлен символ с кодом 1, чего же ты ещё хочешь?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Rodos
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 10.10.2005 (Пн) 22:07
Откуда: Москва

Сообщение Rodos » 02.11.2005 (Ср) 18:48

В смысле символ с кодом 1? Ведь раньше все работало с теми же самыми параметрами.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.11.2005 (Ср) 19:03

Ты добавил в Combo1 9 пунктов с символом  (Asc = 1).

Когда добавляешь в run-time - работает?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Rodos
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 10.10.2005 (Пн) 22:07
Откуда: Москва

Сообщение Rodos » 02.11.2005 (Ср) 19:35

А почему он думает, что я добавляю Asc = 1, а не просто символ "1". Как написать "ж", "1", "2" и т.д., чтобы они нормально воспринимались? И как добавлять в run-time (я же все-таки новичок :roll: )?

P.S. Раньше все было нормально!

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 02.11.2005 (Ср) 19:39

Странно. :? У меня тоже квадратики, т.е. chr(1). При добавлении одного символа заранее или во время работы проги все идет нормально.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.11.2005 (Ср) 19:53

Rodos писал(а):И как добавлять в run-time (я же все-таки новичок :roll: )?


Код: Выделить всё
Option Explicit

Private Sub Form_Load()
    Dim i As Long
    For i = 1 To 32
        Combo1.AddItem i
    Next i
End Sub
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Rodos
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 10.10.2005 (Пн) 22:07
Откуда: Москва

Сообщение Rodos » 02.11.2005 (Ср) 20:25

Спасибо BV, работает! Может действительно так и лучше, а то замучиешься все 32 числа вручную вводить.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

    TopList