vms Postado Janeiro 17, 2008 Denunciar Share Postado Janeiro 17, 2008 uso esse comando para confirmar a saida do aplicativoif MessageDlg('Deseja Sair do Aplicativo?', mtConfirmation,[mbYes, mbNo], 0) = mrYes thenbeginAction := caFree;endelseAction := caNone ;queria incrementar o meu programa,criei um menu "confirmar saida"a duvida e o seguinte.if confirmar saida.Checked = false thenbeginclose;//fecha o programaendelsebegin//aparece a messagem acima de confirmação;end;não estou conseguindo colocar aquele codigo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 17, 2008 Denunciar Share Postado Janeiro 17, 2008 vms, na verdade para a saída do aplicativo basta que você chame o método Close certo?! Quando um form é fechado, dois eventos ocorrem: OnCloseQuery e OnClose. No caso do form principal, quando ele é fechado sua aplicação é encerrada. Assim, não se faz necessário para este form o uso do evento OnClose setando Action com caFree. Este método é interessante quando mostramos um form com Show e ao ser fechado pelo usuário, queremos que ele seja liberado da memória.Assim, sugiro que você utilize o evento OnQueryClose, onde você deverá setar o parâmetro CanClose para True caso queira que seu form (e aplicação, neste caso) seja fechado.procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := True; if ConfirmarSaida1.Checked then // se deve confirmar a saída... if MessageDlg('Deseja Sair do Aplicativo?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then CanClose := False; end;Observe, que inicialmente permitimos o fechamento do form, ao inicializarmos o parâmetro com true. Depois, se verificado que deve ser feita a confirmação de saída, emitimos a mensagem para confirmação, porém mudamos o valor do parâmetro apenas se o usuário responde que não quer sair - quando setamos o parâmetro com false.Isto deve funcionar de acordo com o que você pretende. Contudo, há um item a ser levado em conta, que é quando sua aplicação está em funcionamento e o usuário encerra a sessão do Windows sem ter finalizado ela antes. Veja este tópico.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Carlos -- Postado Janeiro 17, 2008 Denunciar Share Postado Janeiro 17, 2008 você pode fazer assim se quiser, é mais rápido e econômico. if Application.MessageBox('Deseja sair do sistema ?','Confirmação', MB_ICONQUESTION+MB_YESNO) = IDYES then close; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Janeiro 17, 2008 Autor Denunciar Share Postado Janeiro 17, 2008 tudo bem, mas a duvida é seguinte:se o menu "confirmar saida" estiver marcado (Checked), então aparece a messageboxse não, fecha o formou seja, so aparece quando eu marcar o menu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 17, 2008 Denunciar Share Postado Janeiro 17, 2008 você pode fazer assim se quiser, é mais rápido e econômico. if Application.MessageBox('Deseja sair do sistema ?','Confirmação', MB_ICONQUESTION+MB_YESNO) = IDYES then close;é econômico mas não funcional, se este código for posto no evento do menu. Isto porque se o usuário teclar ALT+F4 ou clicar no grande "X", esta confirmação não ocorrerá e a aplicação será fechada.vms, complementando...Supus que "confirmar saida.Checked" refira-se a uma opção de menu que equivá-la a uma configuração onde estando marcado deverá ser apresentada a mensagem para confirmação, e não a uma ação.tudo bem, mas a duvida é seguinte:se o menu "confirmar saida" estiver marcado (Checked), então aparece a messageboxse não, fecha o formacho que é isto que o código que propus faz. Voce o testou?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Carlos -- Postado Janeiro 17, 2008 Denunciar Share Postado Janeiro 17, 2008 (editado) Desculpe amigo micheus, não quis sobrepor sua mensagem, se tivesse visto q você já havia postado, não teria nem postado.Pois quando acessei estava sem respostas.Mas aproveitando..se este código for posto no evento do menu. Isto porque se o usuário teclar ALT+F4 ou clicar no grande "X", esta confirmação não ocorrerá e a aplicação será fechada.é possivel colocar isto no evento onclose do form, aí, independente, irá apresentar a mensagem.abraços Editado Janeiro 18, 2008 por Micheus Adicionado o delimitador de código [quote] [/quote]. Lembre-se de utilizá-lo para melhor definição das partes. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Carlos -- Postado Janeiro 17, 2008 Denunciar Share Postado Janeiro 17, 2008 (editado) Mas com uma pequena mudança no códigoif Application.MessageBox('Deseja sair do sistema ?','Confirmação', MB_ICONQUESTION+MB_YESNO) = IDYES then close; Editado Janeiro 18, 2008 por Micheus Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Carlos -- Postado Janeiro 17, 2008 Denunciar Share Postado Janeiro 17, 2008 (editado) if Application.MessageBox('Deseja sair do sistema ?','Confirmação', MB_ICONQUESTION+MB_YESNO) = IDNO then Abort; Editado Janeiro 18, 2008 por Micheus Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Janeiro 17, 2008 Autor Denunciar Share Postado Janeiro 17, 2008 ola micheUs, desculpe por ter passado "batido" com sua dica, isso resolveu meu problema.valeu pela dica também carlos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 18, 2008 Denunciar Share Postado Janeiro 18, 2008 Desculpe amigo micheus, não quis sobrepor sua mensagem, se tivesse visto q você já havia postado, não teria nem postado.Carlos, não há do que se desculpar não. Desculpe se me fiz parecer rude. :blush: O comentário foi apenas no sentido de salientar que fazer este tipo de validação em uma opção Sair do menu não é o mais apropriado já que ainda há outras opções de fechar a aplicação sem usar o menu.Mas aproveitando..se este código for posto no evento do menu. Isto porque se o usuário teclar ALT+F4 ou clicar no grande "X", esta confirmação não ocorrerá e a aplicação será fechada.é possivel colocar isto no evento onclose do form, aí, independente, irá apresentar a mensagem.Sim, você está certo.Mas, eu penso que o evento OnCloseQuery (questiona fechamento) é o lugar mais apropriado porque ele tem exatamente esta finalidade: possibilitar que o processo de fechamento do form seja interrompido através da atribuição de False ao parâmetro CanClose (pode fechar).ah... se possível, utilize as tag's QUOTE (o balãozinho em modo edição) e CODE (o ícone parecido com um pergaminho), pois elas facilitam a leitura dos posts ;) E vms, meu nome é com u e não com ll. ;)Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
vms
uso esse comando para confirmar a saida do aplicativo
queria incrementar o meu programa,
criei um menu "confirmar saida"
a duvida e o seguinte.
não estou conseguindo colocar aquele codigo.
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.