Zmiana koloru etykiety "w locie" C++ Builder xe4

Witam.

Potrzebuję pomocy w pewnej kwestii. Program ma działać następująco:

-dana etykieta ma kolor czarny i jakiś tam tekst

-jeśli nacisnę dany przycisk, etykieta ma zmienić kolor i oczekiwać na odpowiedź urządzenia. Jeśli urządzenie którym steruję odpowie tak jak chcę, to kolor etykiety powinien wrócić do czerni.

 

Próbowałem używać Repaint-nie działa, a Refresh jest nieobsługiwane (tak mówi kompilator).

Wszystko byłoby ok, tylko program odświeża widok po zakończeniu wykonywania metody. W tym czasie kolor powinien się zmienić 2 razy i tu mam właśnie problem.

Ktoś byłby tak dobry i podrzucił jakiś pomysł? Może da się to obejść?

Pozdrawiam

C++ buildera nie znam, ale może label ma metody Invalidate(), albo Update().

Do tego pytanie, czy transmisja z urządzeniem jest głównym wątku, bo może blokować GUI.

Jakbyś wrzucił kod, to by było łatwiej.

void __fastcall TForm1::Button4Click(TObject *Sender)