MessageBox Com String + Nome do item no banco

28/12/2015

5

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

Posts

30/12/2015

P2

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

30/12/2015

Douglas

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!
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

P2

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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira