ďťż

Ładny brzuch

Witam!
Chciałem zrobić w programie animacje progressbara. Oto kod:

void moveprogressbar() {        for (int i=0; i<=100; i++)        {                ProgressBar1->Position += 1;                Sleep(400);        } } void __fastcall TForm1::Button3Click(TObject *Sender) {        lbStan->Caption = "Trwa ładowanie danych.";        ComboBox1->Enabled = false;        ComboBox2->Enabled = false;        ComboBox3->Enabled = false;        CheckBox1->Enabled = false;        CheckBox2->Enabled = false;        moveprogressbar(); }
Chodziło mi o to, żeby po kliknięciu na przycisk, wszystkie kontrolki były niedostępne (disabled), żeby tekst lbStan zmienił się na "Trwa ładowanie danych." i po tym wszystkim zaczął animować się ProgressBar. Mimo że wywołanie funkcji animującej progress bara jest na końcu, to właśnie ona wykonywana jest jako pierwsza. Dopiero po zakończeniu animacji, kontrolki stają się niedostępne i zmienia się Caption etykiety lbStan. Trochę to dziwne bo przecież funkcja wywołują animację ProgressBara jest na końcu. Czemu tak się dzieje?

BTW. Znacie jakieś dobre kursy pisania DLLi w BCB? Jeśli tak to proszę o linki bo nie udało mi się znaleźć nic ciekawego w googlach.

Z góry dzięki za pomoc.
Pozdrawaim!
Użytkownik zbig27 edytował ten post 28 styczeń 2006, 10:01


Spróbuj przed rozpoczęciem animacji pozwolić aplikacji obsłużyć komunikaty (Application->ProcessMessages() ).

Teraz działa :D
Dzięki!

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •