Mensagem em DLL Delphi.
Boa noite pessoal.
Estou desenvolvendo uma DLL em Delphi que chama outra DLL de um fabricante que é responsável pela comunicação com um pin-pad. O problema que estou encontrando é que preciso mostrar algumas mensagens no front-end do caixa. Consigo mostrar a mensagem usando a função ShowMessage(), mas o problema que essa função espera que o usuário tecle enter ou clique em OK. Preciso apenas mostrar a mensagem na tela.
Já tentei usar a função writeln() mas deu erro de I/O.
Alguém pode me ajudar?
Estou desenvolvendo uma DLL em Delphi que chama outra DLL de um fabricante que é responsável pela comunicação com um pin-pad. O problema que estou encontrando é que preciso mostrar algumas mensagens no front-end do caixa. Consigo mostrar a mensagem usando a função ShowMessage(), mas o problema que essa função espera que o usuário tecle enter ou clique em OK. Preciso apenas mostrar a mensagem na tela.
Já tentei usar a função writeln() mas deu erro de I/O.
Alguém pode me ajudar?
Reinaldo Magalhães
Curtidas 0
Respostas
Natanael Ferreira
13/09/2016
Utilize MessageTimeOut para que a mensagem após determinado tempo sem clicar no botão OK.
Declare a função:
Modo de uso:
Declare a função:
function MessageBoxTimeOut(hWnd: hWnd; lpText: PChar; lpCaption: PChar; uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall; external user32 name 'MessageBoxTimeoutW';
Modo de uso:
var
iFlags: Integer;
begin
iFlags := MB_OK or MB_SETFOREGROUND or MB_SYSTEMMODAL or MB_ICONINFORMATION;
MessageBoxTimeOut(Handle, PChar('Esta mensagem será fechada em 5 segundos!'), 'Fechando',
iFlags, 0, 5000);
end;GOSTEI 0
Raimundo Pereira
13/09/2016
Bom dia,
Ou se preferir dentro pacote JEDI, existe um componente
Simula a chegadas de mensagens estilo skype ou msn, se interessar segue a rotina
JvDesktopAlert1.HeaderText:='Título';
JvDesktopAlert1.MessageText:='P2';
JvDesktopAlert1.StyleOptions.DisplayDuration:=5000;// 5 segundos
JvDesktopAlert1.Execute();
Ou se preferir dentro pacote JEDI, existe um componente
Simula a chegadas de mensagens estilo skype ou msn, se interessar segue a rotina
JvDesktopAlert1.HeaderText:='Título';
JvDesktopAlert1.MessageText:='P2';
JvDesktopAlert1.StyleOptions.DisplayDuration:=5000;// 5 segundos
JvDesktopAlert1.Execute();
GOSTEI 0
Raimundo Pereira
13/09/2016
Ou se preferir use essa função
Add
Uses JvBaseDlg, JvDesktopAlert;
private
{ Private declarations }
Function MSG(Título, Mensagem:string; Tempo_Mensagem:integer):string;
implementation
{$R *.dfm}
Function TForm1.MSG( Título, Mensagem:string; Tempo_Mensagem:integer):string;
var Comp:TJvDesktopAlert;
begin
Comp:=TJvDesktopAlert.Create(nil);
Comp.HeaderText:=Título;
Comp.MessageText:=Mensagem;
Comp.StyleOptions.DisplayDuration:=Tempo_Mensagem;
Comp.Execute();
end;
Chamando a Função:
MSG('P2','Esta mensagem vai destruir-se automaticamente',5000);
Com a função, você pode declarar a função em apenas uma unit e chama-la quando precisar
Add
Uses JvBaseDlg, JvDesktopAlert;
private
{ Private declarations }
Function MSG(Título, Mensagem:string; Tempo_Mensagem:integer):string;
implementation
{$R *.dfm}
Function TForm1.MSG( Título, Mensagem:string; Tempo_Mensagem:integer):string;
var Comp:TJvDesktopAlert;
begin
Comp:=TJvDesktopAlert.Create(nil);
Comp.HeaderText:=Título;
Comp.MessageText:=Mensagem;
Comp.StyleOptions.DisplayDuration:=Tempo_Mensagem;
Comp.Execute();
end;
Chamando a Função:
MSG('P2','Esta mensagem vai destruir-se automaticamente',5000);
Com a função, você pode declarar a função em apenas uma unit e chama-la quando precisar
GOSTEI 0