Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Excluindo um registro do ClientDataSet e ao mesmo tempo mo


nilegor

Question

Ao excluir um item do estoque, gostaria que me mostra-se a descrição do item a ser excluído junto com a mensagem de confirmação de exclusão. veja código abaixo :
if Application.MessageBox('Deseja realmente excluir este Produto ?','Confirme',
MB_ICONQUESTION+MB_YESNO) = ID_YES then
begin
ClientDataSet_estoque.Delete;
ClientDataSet_estoque.ApplyUpdates(0);
end;
Como poderia então fazer com que apareça a descrição do item que foi selecionado para exclusão ? alguém poderia me ajudar ?
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Application.MessageBox e MessageDlg são a mesma coisa

if MessageDlg('Deseja Apagar o Registro ?' + #13 + #13 + 'COD N° : ' +
   ClientDataSet_estoqueCOD.AsString + #13 + #13 + 'PRODUTO : ' + ClientDataSet_estoquePRODUTO.AsString ,
   mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   begin
      ClientDataSet_estoque.Delete;
      ClientDataSet_estoque.ApplyUpdates(0);
   end;

abraço

Link to comment
Share on other sites

  • 0

Jhonas, utilizando MessageDlg funciona perfeitamente, porem preciso que seja Application.MessageBox, e com o mesmo não funciona, imaginei que seria igual o código, porem acredito que tenha mudar algum detalhe. Verifique abaixo por gentileza como ficou :

if Application.MessageBox('Deseja Apagar o Registro ?' +#13 +#13 + 'Código nº : '+
ClientDataSet_estoqueCOD_PRODUTO.AsString + #13 +#13 +
'Descrição: '+ClientDataSet_estoqueDESCRICAO.AsString,
MB_ICONQUESTION+MB_YESNO) = ID_YES then
begin
ClientDataSet_estoque.Delete;
ClientDataSet_estoque.ApplyUpdates(0);
end;

[dcc32 Error] ESTOQUE.pas(706): E2010 Incompatible types: 'PWideChar' and 'string'

Link to comment
Share on other sites

  • 0

veja o que voce esqueceu no código

if Application.MessageBox('Deseja realmente excluir este Produto ?','Confirme',

MB_ICONQUESTION+MB_YESNO) = ID_YES then
if Application.MessageBox('Deseja Apagar o Registro ?' +#13 +#13 + 'Código nº : '+
ClientDataSet_estoqueCOD_PRODUTO.AsString + #13 +#13 +
'Descrição: '+ClientDataSet_estoqueDESCRICAO.AsString, 'Confirme',
MB_ICONQUESTION+MB_YESNO) = ID_YES then

abraço

Link to comment
Share on other sites

  • 0

Boa noite Jhonas, na verdade eu já havia testado colocando o ('confirme') no final, porem o mesmo erro persiste, por este motivo tentei tirar para ver se dava certo, mas não deu, independentemente se colocar o ('confirme') ou não, o erro prossegue igual. E usando MessageDlg não precisa colocar o ('confirme') no final da linha, e também com o MessageDlg funciona o código, porem preciso que seja Application.MessageBox.

O que mais poderia ser sera que esta dando erro ? Agradeço sua atenção.

Link to comment
Share on other sites

  • 0

ok... esqueci-me de um pequeno detalhe ( o Pchar )

veja e teste esse exemplo

aqui estou simulando a entrada de dados do registro da tabela

procedure TForm1.Button1Click(Sender: TObject);
var
    ClientDataSet_estoqueCOD_PRODUTO_AsString, ClientDataSet_estoqueDESCRICAO_AsString: string;
begin
   ClientDataSet_estoqueCOD_PRODUTO_AsString := '00001';
   ClientDataSet_estoqueDESCRICAO_AsString := 'REGULADOR DE VOLTAGEM';

   if Application.messageBox(Pchar('Deseja Excluir esse Registro?'+#13+#13+
   'Código nº :  '+ClientDataSet_estoqueCOD_PRODUTO_AsString + #13+#13+
   'Descrição:  '+ ClientDataSet_estoqueDESCRICAO_AsString)
   ,'Confirmação',mb_YesNo+mb_IconInformation) = id_Yes then
   showmessage('PRODUTO EXCLUIDO!');
end;

agora no seu caso


procedure TForm1.Button1Click(Sender: TObject);
begin
   if Application.messageBox(Pchar('Deseja Excluir esse Registro?'+#13+#13+
   'Código nº :  '+ClientDataSet_estoqueCOD_PRODUTO.AsString + #13+#13+
   'Descrição:  '+ ClientDataSet_estoqueDESCRICAO.AsString)
   ,'Confirmação',mb_YesNo+mb_IconInformation) = id_Yes then
    begin
       ClientDataSet_estoque.Delete;
       ClientDataSet_estoque.ApplyUpdates(0);
       showmessage('PRODUTO EXCLUIDO!');
    end;
end;

abraço

Link to comment
Share on other sites

  • 0
function Application.MessageBox(Text, Caption: PChar; Flags: LongInt): Integer;

O PChar genérico representa um ponteiro para um valor de Char. ( Caracteres )

Este ponteiro de caracteres é usado para manipular strings terminadas em nulos.

OBS: Strings terminadas em nulo são na realidade apenas arrays de caracteres que tem em sua ultima posição um caracter nulo (#0) para marcar o fim da string. Devido à ausência de um indicador de comprimento da string, as operações que dependem dessa informação são normalmente executadas mais rapidamente quando realizadas sobre strings padrão Pascal.

O Delphi, define estas strings como sendo ponteiros para caracteres com o nome de PChar.

Ele também pode ser usado para apontar caracteres dentro de uma cadeia
, ou seja, um PChar pode ser indexado como se fosse um array de caracteres.

de maneira mais simples:

if Application.MessageBox('Deseja realmente excluir este Produto ?','Confirme',

MB_ICONQUESTION+MB_YESNO) = ID_YES then
se voce não usar o Pchar não seria possível incluir na string o controle de quebra de linha para esse comando: Application.MessageBox
'Deseja realmente excluir este Produto ?' +#13+#13+
abraço
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...