Как запустить две формы в C++Builder

Приятно поделиться с вами некоторой информацией.

Извините, кто-нибудь знает, как запустить две ФОРМЫ одновременно?

Я имею в виду, что я выполняю FOR, нажимая одну КНОПКУ на FORM1 и устанавливая значения FOR на LABEL на FORM2.

Вот некоторые коды в FORM1:

void __fastcall Form1::Button1Click(TObject *Sender){
  int i = 0;
  for (i=0;i<=10000;i++){
    Form1->Label1->Caption = i;
    Form2->Label1->Caption = i;  
  }
}

Я просто хочу увидеть это:

если.... Form1->Label1->Caption = 1, Form2->Label1->Caption должно быть тоже 1 и так далее. FORM2 показывает мне только последний результат, который составляет 10000.

Я ценю любую помощь. Спасибо!

1 ответ

Решение

Просто позвони Update(): (*)

void __fastcall Form1::Button1Click(TObject *Sender)
{
  for(int i = 0; i <= 10000; ++i)
  {
    Form1->Label1->Caption = i;
    Form2->Label1->Caption = i;

    Form1->Label1->Update();
    Form2->Label1->Update();
  }
}

Обновить ():

Обрабатывает любые ожидающие сообщения краски немедленно.

Вызовите Update, чтобы принудительно перекрасить элемент управления, прежде чем произойдет какая-либо дополнительная, возможно трудоемкая, обработка. Используйте "Обновление" для немедленной обратной связи с пользователем, который не может дождаться прибытия сообщения рисования Windows.

Обновление не делает элемент управления недействительным, а просто вызывает перерисовку любых областей, которые уже были признаны недействительными.

Application-> ProcessMessages () также будет работать, но это неправильный выбор: он прерывает выполнение приложения, чтобы он мог обработать очередь сообщений. ProcessMessages может быть намного медленнее.

(*) Изменено, поскольку подсказка Remy Lebeau была абсолютно лучше оригинального ответа ( Update против ProcessMessages )

Другие вопросы по тегам