MessageBox Com String + Nome do item no banco

28/12/2015

0

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.
Marcos Barbosa

Marcos Barbosa

Responder

Post mais votado

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:

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

Douglas
Responder

Mais Posts

30/12/2015

Raimundo Pereira

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.
Responder

31/12/2015

Marcos Barbosa

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.
Responder

31/12/2015

Raimundo Pereira

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]
Responder

31/12/2015

Marcos Barbosa

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.
Responder

31/12/2015

Douglas

Opa Marcos,

Fico feliz em ter ajudado você.

Um abraço.
Responder

24/08/2018

Adailso Cosme

As mensagens ficaram em chines ou japones....
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar