Strona 1 z 1

Problem z komponentem TShape

Nowy postNapisane: środa, 23 lipca 2008, 12:56
przez kris35
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();
}

Re: Problem z komponentem TShape

Nowy postNapisane: środa, 23 lipca 2008, 13:07
przez Cyfrowy Baron
Zaraz po zmianie koloru TShape wstaw funcję odświeżającą aplikację:

Kod: Zaznacz cały
   kontrolka->Brush->Color = clGreen;

   Application->ProcessMessages();

Re: Problem z komponentem TShape

Nowy postNapisane: środa, 23 lipca 2008, 13:14
przez kris35
Wielkie dzięki za pomoc. Teraz działa ok.