1

很高兴与您分享一些信息。

打扰一下,有人知道如何同时运行两个表格吗?

我的意思是,我执行一个 FOR 单击 FORM1 上的一个 BUTTON 并将 FOR 的值设置为 FORM2 上的一个 LABEL。

这里 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 只显示了最后一个结果,即 10,000。

我很感激任何帮助。谢谢 !

4

1 回答 1

2

只需致电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的提示绝对比原来的答案好 ( Updatevs ProcessMessages)

于 2014-11-17T14:10:20.087 回答