for(int i = 0; i < 10000; i++)
ListBox1->Items->Add("Your string");
ListBox
Мне нужно добавить в листбокс 100 000 элементов
Если просто добавлять - прога подвисает.
как добавлять по одному элементу?
Цитата:
Originally posted by browser
Вопрос такой
Мне нужно добавить в листбокс 100 000 элементов
Если просто добавлять - прога подвисает.
как добавлять по одному элементу?
Вопрос такой
Мне нужно добавить в листбокс 100 000 элементов
Если просто добавлять - прога подвисает.
как добавлять по одному элементу?
По моему у ListBox'a есть ограничение на кол-во элементов, но я не помню скока :-)
А по одному добавлять:
Код:
#include <windows.h>
#include <process.h>
long Kolvo;
unsigned _stdcall ThreadFunc(void * arg)
{
for (int i=0;i<Kolvo;i++)
Form1->ListBox1->Items->Add(IntToStr(i));
_endthreadex( 0 );
return 0;
};
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Kolvo=StrToInt(Edit1->Text);
Form1->ListBox1->Items->Clear();
HANDLE hThreads[1];
unsigned uThreadIDs[1];
char * InitStr1[2] = {"First thread running!","11111"};
hThreads[0] = (HANDLE)_beginthreadex( NULL, 0, &ThreadFunc, InitStr1, 0,&uThreadIDs[0]);
CloseHandle( hThreads[0]);
}
только в этом случае надо оградить себя от создания второго такого же потока пока не выполнился этот т.е. здесь нельзя будет два раза нажать на кнопку.
Вот и все.
Цитата:
Originally posted by browser
Мне нужно добавить в листбокс 100 000 элементов
Если просто добавлять - прога подвисает.
как добавлять по одному элементу?
Мне нужно добавить в листбокс 100 000 элементов
Если просто добавлять - прога подвисает.
как добавлять по одному элементу?
Для добавление большого количества элементов в ЛистБокс у него есть какой то set метод не помню, где указываешь макс размер.
А чтоб не подвисало в тело цикла вставь
Application->ProcessMessage кажется так или
Sleep(0);
Цитата:
Вопрос такой
Мне нужно добавить в листбокс 100 000 элементов
Если просто добавлять - прога подвисает.
как добавлять по одному элементу?
MSDN:
Specify this style (LBS_NODATA) then the count of items in the list box will exceed one thousand.
Цитата:
Все разобрался, нет ограничения там никакого нету хоть миллион добавь.
MSDN Again:
Windows 95/98: ... list box cannot contain more then 32767 items...
Windows 95/98: ... list box cannot contain more then 32767 items... [/QUOTE]
хех странно я спокойно добавил 100.000 элементов...
Цитата:
Originally posted by browser
хех странно я спокойно добавил 100.000 элементов...
хех странно я спокойно добавил 100.000 элементов...
Так наверное у тебя установленна RxLib.
:)