我试图找到答案,但没有找到。

我想做这样的事情:
当我单击按钮时,我希望它重复操作直到单击另一个按钮

我有这样的事情:

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    if(pole!=NULL){
            pole->przesun_lidera(pole->wladca);
            pole->rozstaw();
            pole->rysuj_plansze();
    }
}

并且我想在“如果”中重复操作,直到我单击另一个按钮。

有人可以告诉我,我该如何实现?

最佳答案

我认为您在这里有两种可能性。一种是创建线程并在其中执行代码,直到设置了由另一个按钮设置的条件为止。另一种可能性是通过调用ProcessMessages()来允许消息泵在循环内时处理消息。

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    condition = false;
    while( !condition && pole!=NULL){
            pole->przesun_lidera(pole->wladca);
            pole->rozstaw();
            pole->rysuj_plansze();
            Application->ProcessMessages();
            Sleep(1); // don't be a processor hog
    }
}

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
    condition = true;
}

关于c++ - 检查是否单击了其他任何按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6960771/

10-10 23:08