Mam problem z poniższym fragmentem kodu. Przy wywołaniu metody DestroyComponents() wywala mi bugi list index out of bounds bądź acces violation at adress ...
HANDLE watek;
DWORD ThreadID;
int DataThread = 1;
unsigned long __stdcall watek_x(void *Arg)
{
ScrollBox1->DestroyComponents();
ScrollBox1->Enabled = true;
//tutaj włączanie buttonów wyzwalających funkcje które bazują na komponentach w scroll boksie
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ScrollBox1->Enabled = false;
//tutaj wyłączanie buttonów wyzwalających funkcje które bazują na komponentach w scroll boksie
watek=CreateThread(NULL, 0, watek_x, &DataThread, 0, &ThreadID);
if (watek == NULL) ExitProcess(DataThread);
}
Natomiast jak wywalę wątek i uruchomię to w wątku głównym problemu nie ma...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ScrollBox1->Enabled = false;
ScrollBox1->DestroyComponents();
ScrollBox1->Enabled = true;
}
Więc problem raczej leży w wątku. Ma ktoś pomysł co robię źle?