valor integer no MessageBox
estar dando erro, valor integer no MessageBox, tento converter para string e continua a dar erro.
estou tentando fazer assim:
if MessageBox(0,´Foi impresso ´+PAnsiChar(Impressos)+´.Você confirma esta informação?´
+#10+10+´ATENÇÃO: Se você concordar, atualize estas informações em seu livro de registros.´
+10+10+´´SIM´ para confirmar.´
+10+´´Não´ para cancelar.´,´Pergunta´,mb_yesno+mb_iconquestion)=6 then
begin
end else
end;
grato!
r@mos
estou tentando fazer assim:
if MessageBox(0,´Foi impresso ´+PAnsiChar(Impressos)+´.Você confirma esta informação?´
+#10+10+´ATENÇÃO: Se você concordar, atualize estas informações em seu livro de registros.´
+10+10+´´SIM´ para confirmar.´
+10+´´Não´ para cancelar.´,´Pergunta´,mb_yesno+mb_iconquestion)=6 then
begin
end else
end;
grato!
r@mos
Erivando
Curtidas 0
Respostas
Motta
24/02/2006
Use a function IntToStr
GOSTEI 0
Erivando
24/02/2006
Use a function IntToStr
amigo isso já fiz e faço constantemente, mas dar erro sempre!
....?
GOSTEI 0
Rjun
24/02/2006
Tente isso:
var msg: string; begin msg := ´Foi impresso ¬d. coloque aqui o resto da mensagem´; msg := Format(msg, [Impressos]); if MessageBox(0, msg ,´Pergunta´,mb_yesno+mb_iconquestion) = 6 then begin end; end;
GOSTEI 0
Erivando
24/02/2006
Tente isso:
var msg: string; begin msg := ´Foi impresso ¬d. coloque aqui o resto da mensagem´; msg := Format(msg, [Impressos]); if MessageBox(0, msg ,´Pergunta´,mb_yesno+mb_iconquestion) = 6 then begin end; end; Amigo Rjun, continua o mesmo erro, porque eu quero inserir éum valor inteber e não uma string. ?
GOSTEI 0
Rjun
24/02/2006
Mas no exemplo que te passei considerei que Impressos é um valor númerico.
Executei o seguinte código aqui e funcionou sem problemas.
Executei o seguinte código aqui e funcionou sem problemas.
var Msg: string; begin Msg := ´Foram impressos ¬d cupons.´; Msg := Format(Msg, [10]); MessageBox(0, PAnsiChar(Msg), ´Aviso´, mb_ok); end;
GOSTEI 0
Michael
24/02/2006
Uma dica: use as constantes da unit [b:7687862c1d]Windows [/b:7687862c1d]para referenciar os valores de retorno do método [b:7687862c1d]MessageBox[/b:7687862c1d].
[quote:7687862c1d=´Borland/Microsoft´]IDOK = 1;
ID_OK = IDOK;
IDCANCEL = 2;
ID_CANCEL = IDCANCEL;
IDABORT = 3;
ID_ABORT = IDABORT;
IDRETRY = 4;
ID_RETRY = IDRETRY;
IDIGNORE = 5;
ID_IGNORE = IDIGNORE;
IDYES = 6;
ID_YES = IDYES;
IDNO = 7;
ID_NO = IDNO;
IDCLOSE = 8;
ID_CLOSE = IDCLOSE;
IDHELP = 9;
ID_HELP = IDHELP;
IDTRYAGAIN = 10;
IDCONTINUE = 11;[/quote:7687862c1d]
[]´s
[quote:7687862c1d=´Borland/Microsoft´]IDOK = 1;
ID_OK = IDOK;
IDCANCEL = 2;
ID_CANCEL = IDCANCEL;
IDABORT = 3;
ID_ABORT = IDABORT;
IDRETRY = 4;
ID_RETRY = IDRETRY;
IDIGNORE = 5;
ID_IGNORE = IDIGNORE;
IDYES = 6;
ID_YES = IDYES;
IDNO = 7;
ID_NO = IDNO;
IDCLOSE = 8;
ID_CLOSE = IDCLOSE;
IDHELP = 9;
ID_HELP = IDHELP;
IDTRYAGAIN = 10;
IDCONTINUE = 11;[/quote:7687862c1d]
[]´s
GOSTEI 0
Erivando
24/02/2006
Mas no exemplo que te passei considerei que Impressos é um valor númerico.
Executei o seguinte código aqui e funcionou sem problemas.
var Msg: string; begin Msg := ´Foram impressos ¬d cupons.´; Msg := Format(Msg, [10]); MessageBox(0, PAnsiChar(Msg), ´Aviso´, mb_ok); end;
oi Rjun
agora não deu erro mais não , mas quando faço executar a mensagem não acontece nada,
usei assim no Button:
procedure TFrmCertificado.Button1Click(Sender: TObject);
var
Msg: string;
begin
Msg := ´Foram impressos ¬d cupons.´;
Msg := Format(Msg, [10]);
MessageBox(0, PAnsiChar(Impressos), ´Aviso´, mb_ok);
end;
obs: (impressos) é o meu resultado integer.
Grato!
GOSTEI 0
Rjun
24/02/2006
Amigo, de onde você tirou que PANSICHAR converte inteiro pra string?
Coloquei alguns comentários no código.
Coloquei alguns comentários no código.
procedure TFrmCertificado.Button1Click(Sender: TObject); var Msg: string; begin Msg := ´Foram impressos ¬d cupons.´; // O ´10´ era só um exemplo. Você deve colocar sua variável Impressos. Msg := Format(Msg, [Impressos]); // Troque Impressos por Msg. Você deve colocar a mensagem a ser // exibida. MessageBox(0, PAnsiChar(Msg), ´Aviso´, mb_ok); end;
GOSTEI 0
Erivando
24/02/2006
Uma dica: use as constantes da unit [b:f76a56bab4]Windows [/b:f76a56bab4]para referenciar os valores de retorno do método [b:f76a56bab4]MessageBox[/b:f76a56bab4].
[quote:f76a56bab4=´Borland/Microsoft´]IDOK = 1;
ID_OK = IDOK;
IDCANCEL = 2;
ID_CANCEL = IDCANCEL;
IDABORT = 3;
ID_ABORT = IDABORT;
IDRETRY = 4;
ID_RETRY = IDRETRY;
IDIGNORE = 5;
ID_IGNORE = IDIGNORE;
IDYES = 6;
ID_YES = IDYES;
IDNO = 7;
ID_NO = IDNO;
IDCLOSE = 8;
ID_CLOSE = IDCLOSE;
IDHELP = 9;
ID_HELP = IDHELP;
IDTRYAGAIN = 10;
IDCONTINUE = 11;
[]´s[/quote:f76a56bab4]
Amigo Michael
mas assim as mensagens não sai em português não é isto!?
r@mos
GOSTEI 0
Michael
24/02/2006
Amigo Michael
mas assim as mensagens não sai em português não é isto!?
r@mos
A API do Windows [b:520c0190f2]MessageBox [/b:520c0190f2]- que está encapsulada pelo método [b:520c0190f2]MessageBox [/b:520c0190f2]da classe [b:520c0190f2]TApplication [/b:520c0190f2]- usa as mensagens do sistema operacional. Portanto, só serão em inglês se o Windows onde o programa rodar for. Vc está confundindo esta função com a do Delphi, [b:520c0190f2]MessageDlg[/b:520c0190f2]. Essa por default exibe os captions em inglês, mas podem ser alterados no arquivo [b:520c0190f2]Const.pas[/b:520c0190f2].
Mas, a minha dica não tem nada a ver com isso. São constantes para vc não precisar fazer o que estava fazendo. Com elas vc pode trocar 6 por [b:520c0190f2]ID_YES[/b:520c0190f2], que é bem mais intuitivo, não acha?
if Application.MessageBox(...) = ID_YES then ...
[]´s
GOSTEI 0
Erivando
24/02/2006
[quote:bb78ffa599=´INFORAMOS´]Amigo Michael
mas assim as mensagens não sai em português não é isto!?
r@mos
A API do Windows [b:bb78ffa599]MessageBox [/b:bb78ffa599]- que está encapsulada pelo método [b:bb78ffa599]MessageBox [/b:bb78ffa599]da classe [b:bb78ffa599]TApplication [/b:bb78ffa599]- usa as mensagens do sistema operacional. Portanto, só serão em inglês se o Windows onde o programa rodar for. Vc está confundindo esta função com a do Delphi, [b:bb78ffa599]MessageDlg[/b:bb78ffa599]. Essa por default exibe os captions em inglês, mas podem ser alterados no arquivo [b:bb78ffa599]Const.pas[/b:bb78ffa599].
Mas, a minha dica não tem nada a ver com isso. São constantes para vc não precisar fazer o que estava fazendo. Com elas vc pode trocar 6 por [b:bb78ffa599]ID_YES[/b:bb78ffa599], que é bem mais intuitivo, não acha?
if Application.MessageBox(...) = ID_YES then ...
[]´s[/quote:bb78ffa599]
om cereteza Michael compeendi perfeitamente, obrigado!
GOSTEI 0
Erivando
24/02/2006
Amigo, de onde você tirou que PANSICHAR converte inteiro pra string?
Coloquei alguns comentários no código.
procedure TFrmCertificado.Button1Click(Sender: TObject); var Msg: string; begin Msg := ´Foram impressos ¬d cupons.´; // O ´10´ era só um exemplo. Você deve colocar sua variável Impressos. Msg := Format(Msg, [Impressos]); // Troque Impressos por Msg. Você deve colocar a mensagem a ser // exibida. MessageBox(0, PAnsiChar(Msg), ´Aviso´, mb_ok); end;
Muito Obrigado Rjun, graças a você consegui resolver meu problema
ajustei o código ao que eu queria e deu tudo certo agora.
eu fiz assim e ficou show!
procedure TFrmCertificado.Btn_ImprimirClick(Sender: TObject);
var
Msg: string;
begin
Msg := ´Foi impresso(s) ¬d certificado(s). Você confirma esta informação?´
+#10+10+´ATENÇÃO: Se você concordar, atualize estas informações em seu livro de registros.´
+10+10+´´Sim´ para confirmar.´
+10+´´Não´ para cancelar.´;
Msg := Format(Msg, [Impressos]);
if MessageBox(0, PAnsiChar(Msg),´Pergunta´,mb_yesno+mb_iconquestion)= 6 then
begin
...
end else
...
end;
valeu!
r@mos
GOSTEI 0