Fórum Mensagem em DLL Delphi. #562302

13/09/2016

0

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?
Reinaldo Magalhães

Reinaldo Magalhães

Responder

Posts

14/09/2016

Natanael Ferreira

Utilize MessageTimeOut para que a mensagem após determinado tempo sem clicar no botão OK.

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

Gostei + 0

14/09/2016

Raimundo Pereira

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();
Responder

Gostei + 0

14/09/2016

Raimundo Pereira

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
Responder

Gostei + 0

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

Aceitar