gpt4 book ai didi

c++ - 如何在 C++Builder 中运行两个窗体

转载 作者:行者123 更新时间:2023-11-30 03:59:20 25 4
gpt4 key购买 nike

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

请问,有谁知道如何同时运行两个FORMS吗?

我的意思是,我在 FORM1 上单击一个 BUTTON 执行 FOR,并将 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。

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

最佳答案

只需调用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() :

Processes any pending paint messages immediately.

Call Update to force the control to be repainted before any more, possibly time-consuming, processing takes place. Use Update to provide immediate feedback to the user that cannot wait for the Windows paint message to arrive.

Update does not invalidate the control, but simply forces a repaint of any regions that have already been invalidated.

Application->ProcessMessages()也可以,但这不是正确的选择:它会中断应用程序的执行,以便它可以处理消息队列。 ProcessMessages 可能会慢很多。

(*) 自 Remy 后更改的提示绝对比原始答案好(Update vs ProcessMessages)

关于c++ - 如何在 C++Builder 中运行两个窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26967091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com