Как запустить две формы в 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
)