Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/89: Рейтинг темы: голосов - 89, средняя оценка - 4.67
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

List index out of bounds (0)

09.02.2009, 14:54. Показов 16319. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня 2 вопроса...

1. Пишу программку для добавления в листбокс строк из эдит. Есть 2 кнопки: одна добавляет строки, другая удаляет их. Также придусмотрел появление горизонтальной прокрутки в листбоксе. Но есть одна проблема появляется окно с ошибкой после запуска программы, когда я добавляю первую строку в листбокс. Вот эта ошибка "List index out of bounds (0)". Подскажите в чём проблема??????


//---------------------------------------------------------------------------
C++
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
61
62
63
64
65
66
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int MaxWidth=10000,WidthOfString,b,i;
AnsiString str;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
i = ListBox1->ItemIndex;
str = ListBox1->Items->Strings[i];
WidthOfString = ListBox1->Canvas->TextWidth(str);
b = ListBox1->ClientWidth;
 
        if (!(Edit1->Text == ""))
             {ListBox1->Items->Add(Edit1->Text);
               Edit1->Text = "";
               BitBtn1->Enabled=true;
               ShowMessage(WidthOfString);
             if (WidthOfString >= b)
                {ListBox1->Perform(LB_SETHORIZONTALEXTENT,MaxWidth,0);}}
                
 
 
Edit1->SetFocus();
Button2->Enabled=true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
i = ListBox1->ItemIndex;
str = ListBox1->Items->Strings[i];
WidthOfString = ListBox1->Canvas->TextWidth(str);
b = ListBox1->ClientWidth;
 
 
      if (ListBox1->Items->Count > 0)
         {
        if (!(ListBox1->ItemIndex == -1))
             {Button2->Enabled=true;
              ListBox1->Items->Delete(ListBox1->ItemIndex);
              Edit1->SetFocus();
            if (WidthOfString < b)
               {ListBox1->Perform(LB_SETHORIZONTALEXTENT,0,0);}
               else if (ListBox1->Items->Count == 0)
                    {ListBox1->Perform(LB_SETHORIZONTALEXTENT,0,0);
                     Button2->Enabled=false;
                     BitBtn1->Enabled=false;}}} 
 
}
//---------------------------------------------------------------------------





И 2 вопрос..

Подскажите как реализовать поиск файлов в каталоге с рассширением *.ttf и как из этих файлов извлеч названия шрифтов и поместить в листбокс. Или хотябы намикните в каком направлении двигаться........


Заранее благодарен за оба ответа....
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2009, 14:54
Ответы с готовыми решениями:

List index out of bounds (-1)
Доброго дня всем! Помогите пожалуйста. При попытке запустить приложение в Borland Developer Studio (C++) выдает ошибку: List index out of...

List index out of bounds(38)
Доброго времени суток. Возможно, вопрос поднимался уже, но конкретно для своей задачи ответ найти не смог. Имеется событие по нажатию...

List index out of bounds 0
Добрый день! Пытаюсь проработать пример передачи файла через клиент-сервер и ничего не получается.... В чем проблема? почему такое выводит?...

4
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
09.02.2009, 15:12
проверь здесь, какой у тебя i:
C++
1
2
i = ListBox1->ItemIndex;  
str = ListBox1->Items->Strings[i];
Когда у тебя листбокс пустой, ты какую строку из него достать собираешься?
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
09.02.2009, 15:29
Когда у тебя Листбокс пуст он не может корректно прочитать ширину элемента содержащегося в нем...

вот так будет работать:
C++
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int MaxWidth=10000,WidthOfString,b,i;
AnsiString str;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
i = ListBox1->ItemIndex;
if (ListBox1->Items->GetText() == "")
{
        str = ListBox1->Items->Strings[i];
        WidthOfString = ListBox1->Canvas->TextWidth(str);
}
else
{
        WidthOfString = 0;
}
b = ListBox1->ClientWidth;
 
 
      if (ListBox1->Items->Count > 0)
         {
        if (!(ListBox1->ItemIndex == -1))
             {Button2->Enabled=true;
              ListBox1->Items->Delete(ListBox1->ItemIndex);
              Edit1->SetFocus();
            if (WidthOfString < b)
               {ListBox1->Perform(LB_SETHORIZONTALEXTENT,0,0);}
               else if (ListBox1->Items->Count == 0)
                    {ListBox1->Perform(LB_SETHORIZONTALEXTENT,0,0);
                     Button2->Enabled=false;
                     BitBtn1->Enabled=false;}}}
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
i = ListBox1->ItemIndex;
if (ListBox1->Items->GetText() == "")
{
        str = ListBox1->Items->Strings[i];
        WidthOfString = ListBox1->Canvas->TextWidth(str);
}
else
{
        WidthOfString = 0;
}
b = ListBox1->ClientWidth;
 
        if (!(Edit1->Text == ""))
             {ListBox1->Items->Add(Edit1->Text);
               Edit1->Text = "";
               BitBtn1->Enabled=true;
               ShowMessage(WidthOfString);
             if (WidthOfString >= b)
                {ListBox1->Perform(LB_SETHORIZONTALEXTENT,MaxWidth,0);}}
 
 
 
Edit1->SetFocus();
Button2->Enabled=true;
}
//---------------------------------------------------------------------------
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
09.02.2009, 15:35  [ТС]
Спасибо попробую, ну а по второму вопросу что-то можете посоветовать?
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
10.02.2009, 10:26
TFileListBox с маской (Мask) *.ttf
+ посмотри пример в шестом Билдере ...Examples\Apps\Owner List\fontdraw.bpr
а вообще еще существует TFontDialog
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2009, 10:26
Помогаю со студенческими работами здесь

list index out of bounds
Здрасте возникла проблема. void ListFiles(AnsiString path, TStrings* List, TStrings* List2, long int strn) { TSearchRec sr; ...

list index out of bounds (6)
хочу изменить даные с БД и он выкидывает ошибку list index out of bounds(6) подскажите как с этим бороться.. :)

List index out of bounds (0)
Добро всем! Вот такой massage перед запуском программы мне выдает на XP и только на одном ПК, причем windows XP ставился с одного диска...

Ошибка List index out of bounds(2)
Как исправить ошибку? //--------------------------------------------------------------------------- #include &lt;vcl.h&gt; ...

Ошибка List index out of bounds(2)
В чем ошибка? void __fastcall TForm2::Button2Click(TObject *Sender) { if (flag) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru