Logo Hardware.com.br
JOSE DE FREITAS
JOSE DE FREI... Membro Junior Registrado
118 Mensagens 1 Curtida

Salvar com Opção de Sim ou Não - Delphi 7 - Resolvido

#1 Por JOSE DE FREI... 16/11/2010 - 20:32
Boa noite,
Preciso de um Código para Delphi 7 com a Opção: Salvar? - Sim ou Não.

Quando coloco um ShowMessage(Deseja realmente Salvar?), o que acontece É que a única oção que me é exposta é Ok.
Preciso da Opção Sim ou Não para que eu escolha.

Obrigado

JOSE DE FREITAS
Responder
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#4 Por TerraSkilll
17/11/2010 - 09:01
JOSE DE FREITAS

Complementando o Eliseu F A Jr, eis a sintaxe:


if MessageBox(HANDLE, 'Deseja salvar?', 'Aviso', MB_YESNO + MB_ICONQUESTION) = idyes then
// aqui você coloca o código para salvar


ou mesmo


if Application.MessageBox('Deseja salvar?', 'Aviso', MB_YESNO + MB_ICONQUESTION) = idyes then
// aqui você coloca o código para salvar


Pesquise sobre o MessageBox. Tem coisas bem interessantes.

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
JOSE DE FREITAS
JOSE DE FREI... Membro Junior Registrado
118 Mensagens 1 Curtida
#5 Por JOSE DE FREI...
17/11/2010 - 13:08
Agradeço a atenção de vocês que estão tentando me ajudar. Quero informar-lhes que sou iniciante, com pouca experiência em Programação. Mas Vamos lá:
Baixei da Internet o Código abaixo e o Adaptei para o meu Caso:

procedure Tfrm_CorPersonalizada.Btn_SalvarClick(Sender: TObject);
Var
Result: Integer;
begin
Result:= Application.MessageBox('Deseja realmente Salvar?','',MB_YESNOCANCEL+ MB_ICONINFORMATION);

case Result of
2: ADOQuery1.Cancel;
6: ADOQuery1.Post;
7: ADOQuery1.Cancel;
end;

Desse jeito ele funciona porém me dá as Opções de : "Sim, Não e Cancelar".
Eu quero usar só "Sim e Não", portanto quero cancelar a Opção Cancelar.

Se eu alterar o Código acima para:


procedure Tfrm_CorPersonalizada.Btn_SalvarClick(Sender: TObject);
Var
Result: Integer;
begin
Result:= Application.MessageBox('Deseja realmente Salvar?','',MB_YESNO+ MB_ICONINFORMATION);

case Result of
2: ADOQuery1.Cancel;
6: ADOQuery1.Post;

end;


Mesmo eu Clicando em Não ele Salva o Arquivo.
Dá pra me ajudar a resolver esse problemas.

Grato

JOSE DE FREITAS
JOSE DE FREITAS
JOSE DE FREI... Membro Junior Registrado
118 Mensagens 1 Curtida
#8 Por JOSE DE FREI...
17/11/2010 - 22:33
Boa noite, deu certo realmente o Código indicado. Agora mais uma dica , vocês que são cobas no assunto. Quando abro um arquivo e o edito, por exemplo mudo seu nome e salvo abro o DBGrid com o nome antido então clico na coluna "Nome" no DBGrid para ordenar em ordem alfabética o Arquivo aparece com o nome editado. Parece que o Programa não está atualizando.

Como fazer para isso não acontecer.
Usei o ADOQuery1. Refresh mas não resolveu.

Um abraço

JOSE DE FREITAS
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#9 Por TerraSkilll
18/11/2010 - 08:44
JOSE DE FREITAS
Não entendi muito bem o que você está fazendo. Esse DBGrid é uma lista de arquivos, é isso? E, ao salvar as alterações, você queria gravar a alteração do nome do arquivo na tabela?

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
JOSE DE FREITAS
JOSE DE FREI... Membro Junior Registrado
118 Mensagens 1 Curtida
#10 Por JOSE DE FREI...
18/11/2010 - 09:15
Bom dia, é justamente isso. Vou gravando os nomes dos produtos e eles vão aparecendo no DBGrid onde faço a consulta. Então quando altero o nome de um produto já gravado e salvo só depois de eu clicar no BDGrid para ordenar por qualquer uma das colunas é que o produto aparece com o nome alterado . Quando abro o DBgrid o nome do produto ainda está o antigo ao clicar para ordenar por exemplo na Coluna Código aí o novo nome aparece no DBGrid atualizado.

Um abraço

JOSE DE FREITAS
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#11 Por TerraSkilll
18/11/2010 - 09:35
JOSE DE FREITAS
Se a sua função de ordenar ao clicar fecha (Close ou Active := false) e abre novamente o ADOQuery1, é por isso que ele funciona, já que os dados são recarregados. O que você pode fazer (não é a melhor solução, na minha opinião) é fechar e abrir o ADOQuery1 a cada alteração. Por exemplo:

[CODE=rich]procedure Tfrm_CorPersonalizada.Btn_SalvarClick(Sender: TObject);
begin
if Application.MessageBox('Deseja realmente Salvar?','',MB_YESNO+ MB_ICONINFORMATION) = ID_YES then
ADOQuery1.Post
else
ADOQuery1.Cancel;

ADOQuery1.Close;
ADOQuery1.Open;

end;[/CODE]

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal