MessageBox Com String + Nome do item no banco
28/12/2015
0
Quero mostrar uma messageBox no Delphi quando o usuário excluir um item, mais, quero mostrar também o item que será excluído.
por exemplo:
if Application.MessageBox('Deseja realmente excluir o item: ' + DM.cdsProdutosPROD_DESCRICAO.Value ' ?', 'ATENÇÃO', MB_YESNO + MB_ICONQUESTION) = mrYes then
Mas dá erro um erro de PWideChar.
Já tentei várias outras maneiras encontradas pela net, mas, não consegui.
Aguardo ajuda.
Valeu.
Marcos Barbosa
Post mais votado
30/12/2015
Você deve utilizar o ponteiro "Pchar", passando a string para o mesmo. Veja como fica o seu código agora:
if Application.MessageBox(Pchar('Deseja realmente excluir o item: ' + DM.cdsProdutosPROD_DESCRICAO.Value + ' ?'), 'ATENÇÃO', MB_YESNO + MB_ICONQUESTION) = mrYes then
Desta forma, não obterá mais o erro de PWideChar.
Espero ter ajudado!
Bons Códigos!
Douglas
Mais Posts
30/12/2015
Raimundo Pereira
Tenho duas soluções para você.
var Situacao:string;
Situacao:=DM.cdsProdutosPROD_DESCRICAO.asstring;
if application.MessageBox(PChar(´Deseja excluir o registro´+Situacao+´ ?´),´Atenção´,mb_yesno+mb_iconstop)=idyes then
begin
Sua rotina de exclusão
end;
Outra solução, você pode criar um form 'Fmsg'
1.Label_situação
2.Button_Sim
3.Button_Não
Var
Chamada_Função:string;
Criando diversas procedures que deve ser excutada ao clicar no button sim
Exemplo
Procedure Excluir_Produto ();
begin
if Chamada_Função='Excluir_Produto' then
begin
retina de exclusão
end;
No button sim,
Identifique a chamada e execute a procedure desejada
if Chamada_Função='Excluir_Produto' then
begin
Procedure Excluir_Produto (SELF);
end;
No button_não só precisa fechar o form e libera-lo da memória.
Antes de dar o show no form msg, você deve alimentar a variável Chamada_Função para o tipo de chamada_desejada
no caso será fmsg.Chamada_Função:='Excluir_Produto';
E a Label_situação.caption para a chamada desejada no caso >>
'Deseja realmente excluir o item: ' + DM.cdsProdutosPROD_DESCRICAO.Value
Fica a seu critério qual das alternativas melhor lhe agrada.
31/12/2015
Marcos Barbosa
A primeira forma eu já havia tentado e também não funciona.
A segunda funciona, mas, gostaria de criar o mínimo de forms, etc, na aplicação.
Obrigado.
Olá Douglas.
Dá sua sua maneira não teve mais o erro PWideChar, porém, a mensagem saiu 100% em Japonês.
O que pode ser?
Obrigado.
31/12/2015
Raimundo Pereira
Tente , assim
var x:string;
begin
x:='';
x:=Consulta_NFE.FieldByName('NFE').AsString;// Substitua pelo que desejar.
if application.MessageBox(PChar('Deseja excluir o registro '+x+' ?'),'Atenção',mb_yesno+mb_iconstop)=idyes then
begin
showmessage(' sua rotina de exclusão');
end;
Aqui funcionou.[img]http://arquivo.devmedia.com.br/forum/imagem/437747-20151231-091700.png[/img]
31/12/2015
Marcos Barbosa
Rapaz que alegria de ver funcionando do jeito que eu quero.
Muito obrigado pela dica.
Obrigado P2 e Douglas pela colaboração.
Clique aqui para fazer login e interagir na Comunidade :)