MessageBox Com String + Nome do item no banco
Olá, por favor. Alguém poderia me ajudar.
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.
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
Curtidas 0
Melhor post
Douglas
30/12/2015
Olá Marcos Brilhante, tudo bem?
Você deve utilizar o ponteiro "Pchar", passando a string para o mesmo. Veja como fica o seu código agora:
Desta forma, não obterá mais o erro de PWideChar.
Espero ter ajudado!
Bons Códigos!
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!
GOSTEI 1
Mais Respostas
Raimundo Pereira
28/12/2015
Bom dia,
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.
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.
GOSTEI 0
Marcos Barbosa
28/12/2015
Olá P2.
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.
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.
GOSTEI 0
Raimundo Pereira
28/12/2015
Bom dia,
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]
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]
GOSTEI 0
Marcos Barbosa
28/12/2015
Bom dia P2.
Rapaz que alegria de ver funcionando do jeito que eu quero.
Muito obrigado pela dica.
Obrigado P2 e Douglas pela colaboração.
Rapaz que alegria de ver funcionando do jeito que eu quero.
Muito obrigado pela dica.
Obrigado P2 e Douglas pela colaboração.
GOSTEI 0
Douglas
28/12/2015
Opa Marcos,
Fico feliz em ter ajudado você.
Um abraço.
Fico feliz em ter ajudado você.
Um abraço.
GOSTEI 0
Adailso Cosme
28/12/2015
As mensagens ficaram em chines ou japones....
GOSTEI 0