微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的 Delphi 代码没有按顺序执行?

如何解决为什么我的 Delphi 代码没有按顺序执行?

我正在创建一个程序,我需要显示一个图像,然后在再次允许输入之前阻止输入几秒钟。我遇到的问题是 Delphi 没有按顺序运行代码,而是在执行图像命令之前执行 Sleep() 命令。我之前在显示消息之前对视频使用 Sleep() 时遇到过这个问题。

代码如下:

procedure TtForm.WindowsMediaPlayer2Click(ASender: TObject;
  nButton,nShiftState: SmallInt; fX,fY: Integer);                          
Var                                                                            
  buttonSelected: Integer;                                                  
begin                                                                     
  buttonSelected := MessageDlg('Well done Monkey!-_-',mtError,mbOKCancel,0);                                                            
  if buttonSelected = mrOK then                                              
  begin            
    Pages.Visible := False;                                                
    WindowsMediaPlayer2.Visible := False;                                      
    imgEroor.BringToFront;                                                  
    BorderStyle := bsNone;                                                   
    WindowState := wsMaximized;                                             
    imgEroor.Top := 0;                                                       
    imgEroor.Left := 0;                                                         
                                                                              
    imgEroor.Width := Screen.Width;                                                 
    imgEroor.Height := Screen.Height;                                       
    imgEroor.BringToFront;                                               
                                                                        
    BlockInput(True);                                             
    Sleep(10000);                                                         
    BlockInput(False);                                                    
  end;
                                                                   
  if buttonSelected = mrCancel then                                                    
  begin                                           
    Pages.Visible := False;                                               
    WindowsMediaPlayer2.Visible := False;                                   
    imgEroor.BringToFront;                                                 
    BorderStyle := bsNone;                                                      
    WindowState := wsMaximized;                                                
    imgEroor.Top := 0;                                                     
    imgEroor.Left := 0;                                                        
                                                                              
    imgEroor.Width := Screen.Width;                                         
    imgEroor.Height := Screen.Height;                                          
    imgEroor.BringToFront;                                                     
                                                                            
    BlockInput(True);                                                   
    Sleep(10000);                                                         
    BlockInput(False);                                                    
  end;                                                                    
end;                                                                          

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。