Visual C++ - odświeżanie okna przez inne klasy

0

Witam,
Piszę programik w Visual Studio 2010 w C++
Chciałbym się dowiedzieć w jaki sposób "odświeżać" TextBox'y za pomocą klasy znajdującej się wewnątrz głównego Form'u.
Chodzi o to, że mam główną klasę 'Form', w niej klasę 'Algebra' wykonującą obliczenia. Chce, żeby metoda 'Licz' klasy 'Algebra' odświeżała na bieżąco (wraz z postępem obliczeń ) pewne pola TextBoxy w klasie głównej Form. Udało mi się zrobić 'delegate' , ale nie załatwia to problemu. Mój kod :

Klasa Form w skrócie :


public ref class Form1 : public System::Windows::Forms::Form
    {
private : // jakies tutaj Labele i TextBox'y

private: System::Void start_Click(System::Object^  sender, System::EventArgs^  e) {
             ackley = new Ackley();
            sw= gcnew SW( 5, 1 , 1000000 , 0.98,  ackley ,1); // sw klasa obliczająca 
            sw->method += gcnew SW::UpdateLabel(this , &Form1::updateFields); // delegate 
            sw->symulate();

         }

}

 public :  void updateFields(double temp   )
                 {
                     this->MojTextBox->Text=Convert::ToString(temp);

                 }

Klasa SW w skrócie :


public ref class SW{

public : int aktualna_temperatura;

public :delegate void UpdateLabel(double temp  );
public :  UpdateLabel^ method;

public : void update()
         {
             method(this->aktualna_temperatura);
         }

public:symulate(){

for ( i = 0 ; i< 1000 ; i++)
{
 aktualna_temperatura = i*10;  // tutaj jakieś obliczenia 

update();
}
}

Kod działa , ale wynikiem jego jest , odświeżenie widoku, dopiero po wykonaniu wszystkich obliczeń.
Potrzebuje najprostsze rozwiązanie, próbowałem też przekazywać texboxy do zmiennej liczącej i ustawiać je- nie działa.

Pozdrawiam Michał.

próbowałem także przesłać wskaźnik na metodę

0

Małe pytanko: dlaczego piszesz w C++/CLI, skoro nie znasz ani C++, ani .NET?

0

Jeśli mi podasz podpowiedź w jaki sposób realizuje się taką funkcjonalność to już sobie sam poradzę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0