Logo Hardware.com.br
Responder Tópico
reginaldodd
reginaldodd Geek Registrado
2.1K Mensagens 158 Curtidas
#3 Por reginaldodd
17/11/2010 - 08:46

if messagedlg('Para acessar as alternativas, você deve primeiramente salvar estas informações. Deseja Salvar Agora?',mtconfirmation,mbokcancel,0) = 1 then begin

1 = sim

pc xt genuine intel 8088 - 4.77mhz (8, teclando ctrl alt +) - 640kb ram - fd 360k - winchester de 10mbmaquinão, heim
user # 133910

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

reginaldodd
reginaldodd Geek Registrado
2.1K Mensagens 158 Curtidas
#6 Por reginaldodd
17/11/2010 - 13:38

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;
end;

pc xt genuine intel 8088 - 4.77mhz (8, teclando ctrl alt +) - 640kb ram - fd 360k - winchester de 10mbmaquinão, heim
user # 133910

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

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.