Zrobiłem kontrolkę wykorzystując do tego Shape. Ustawiona jest ona na kolor czerwony i ma za zadanie zmienić kolor na zielony gdy wykonywane są funkcje. Wszystko Jest dobrze tylko, że kontrolka robi się zielona dopiero gdy program wyjdzie z pętli do while. Czy jest jakiś sposób aby odświeżyć formularz zaraz po wykonaniu kontrolka->Brush->Color = clGreen; a nie po skończniu pętli? Wcześniej użyłem komponentu ProgressBar i było dokładnie to samo.
void __fastcall TForm1::WyszukajClick(TObject *Sender)
{
String katalog,temp;
TStringList *listek = new TStringList;
kontrolka->Brush->Color = clGreen;
if (SelectDirectory("Wybierz folder do zapisu","",katalog))
{
temp=katalog+"\\";
FindDir(listek, temp, "pdf");
do
{
tabela->RowCount=(listek->Count/3)+1;
tabela->Cells[0][r]=IntToStr(r);
tabela->Cells[1][r]=listek->Strings[p];
tabela->Cells[2][r]=listek->Strings[p+1];
tabela->Cells[3][r]=listek->Strings[p+2];
r++;
p=p+3;
Label2->Caption=IntToStr(r-1)+" plików";
}
while (p < listek->Count);
}
listek->Free();
}