Главная страница | назад





Article #17301: How can I abort a lengthy operation?

 Question and Answer Database
FAQ2301C.txt How can I abort a lengthy operation?
Category :IDE
Platform :All
Product :C++Builder 3.x
Question:
How can I abort a lengthy operation?
Answer:
Create a global boolean variable to indicate if a abort button has
been pressed. Call Application->ProcessMessages() to allow other
events (the changing of the abort flag) in your application to process.
Check the value of the global boolean during your lengthy event, and
break out if it returns true. Calling Application->ProcessMessages() will
also allow other applications to process, allowing for a smooth flow of
system events. Note that you must be careful to control re-enterance,
since other controls in your application may receive messages as well.
Example:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
bAbort = false;
for(i=0; i<1000000; i++)
{
Application->ProcessMessages();
if(bAbort == true)
break;
}
if(bAbort == true)
ShowMessage("Operation Aborted");
else
ShowMessage("Operation Successful");
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
bAbort = true;
}
7/2/98 10:32:32 AM

Last Modified: 01-SEP-99