Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ediat

[Resolvido] programa em delhpi Abrir somente um.

Recommended Posts

Boa tarde a todos,

 

Alguém poderia me ajudar, por favor. :D

 

Eu fiz um pequeno programinha em delphi xe e gostaria que executasse somente uma janela, ja tentei várias dicas que achei na net mas não funcionou, não sei se fiz algo de errado até mesmo porque sou iniciante.

 

Bom se alguém puder me ajudar, agradeço muito, e se possível, deixar bem detalhadinho. Como eu disse sou iniciante :D.

 

Desde já agradeço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, também não tenho lá muito conhecimento e domínio no Delphi, mas já faço algumas de básico a intermediário.

Essa dica também peguei na internet e, ao menos pra mim, funcionou.

Para editar esse código, clique em Project -> View Source... depois vá adpatando ao seu código:

 

program Lctos_Folha;

uses
 Forms,
 Windows,
 SysUtils,
 u_principal in 'u_principal.pas' {frm_principal},
 u_dm in 'u_dm.pas' {dm: TDataModule},
 u_eventos in 'u_eventos.pas' {frm_eventos},
 u_lctos in 'u_lctos.pas' {frm_lctos};

{$R *.res}

var
 hMutex: THandle;
 cMsg:Cardinal;
 cMensagem:String;

begin
 cMensagem:='lctos_folha';
 hMutex := CreateMutex(nil, False, PAnsiChar(cMensagem));
 cMsg := RegisterWindowMessage(PChar(cMensagem));

 if (hMutex<>0) and ( GetLastError=ERROR_ALREADY_EXISTS ) then
 begin
   Application.MessageBox('Este programa encontra-se em execução...',  'Aviso...', MB_ICONSTOP);
   SendMessage(HWND_BROADCAST, cMsg, 0, 0);
   CloseHandle(hMutex);
   Application.Terminate;
 end
 else
 begin
   Application.Initialize;
   Application.Title := 'Lcto Dados Folha';
   Application.CreateForm(Tfrm_principal, frm_principal);
 //    Application.CreateForm(Tdm, dm);
   Application.Run;
 end;
 CloseHandle(hMutex);
end.

 

Qualquer dúvida, pergunte, se eu souber, responderei!

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Agradeço sua atenção, vou testar, se funcionar ou eu tiver alguma dúvida perguntarei novamente.

De momento obrigado.

 

Ok, :joia: Funcionou que uma Beleza.

Somente alterei uma linha que deu o seguinte erro:

 

[DCC Error] Project1.dpr(18): E2010 Incompatible types: 'PWideChar' and 'PAnsiChar'

 

essa linha.

hMutex := CreateMutex(nil, False, PAnsiChar(cMensagem));

Troquei o PAnsiChar por PWideChar.

 

Muito obrigado Mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.