Form - Mostrando ShowModal com Show

Top  Previous  Next

Mostrando um formulário Modal usando Show

Um exemplo disso é quando você está mostrando um diálogo do progresso de uma operação. 

 

O problema é que se você usa ShowModal todo o código da operação deve estar contido no form do diálogo de progresso. 

 

Para evitar isso use DisableTaskWindows and EnableTaskWindows. 

 

Desta form seu diálogo vai agir como um formulário Modal e ao mesmo tempo permite executar o form da operação que está em progresso no diálogo. 

 

procedure TForm1.ShowProgressDlg; 

var 

WindowList: Pointer; 

begin 

// Desabilita todos os formulários com exceção de FrmProgress 

WindowList := DisableTaskWindows(FrmProgress.Handle); 

try 

FrmProgress.Show; 

// Início do loop que executa a operação 

FrmProgress.ProgressBar1.Position := FrmProgress.ProgressBar1.Position + 1

// Fim do loop 

finally 

// Reabilita todos os formulários 

EnableTaskWindows(WindowList); 

FrmProgress.Close; 

end// try 

end// ShowProgressDlg