Pq o comp. JEDI, 1 Instancia do Aplic, não funciona aki ?
29/06/2008
0
Olá!
Inseri um comp. do JEDI, uma instancia do aplicativo no meu Menu principal, fiz o teste e funcionou tudo ok.
Pois pecebi q o programa p/ verifiar, carrega o programa até o menu, p/ ser detectado, então resolvi coloca-lo no .dpr.
Ao criar e inseri o mesmo no .dpr, não funcionou.
Veja a rotinas:
A quem puder ajudar, desde já meus agradecimentos.
---------------------
//Arquivo .DPR...
....
Var Frm_inicio : TFrm_inicio;
JvAppInstances1: TJvAppInstances;
begin
//---------------------------------//
Application.Initialize;
//---------------------------------//
JvAppInstances1:= TJvAppInstances.Create(application);;
JvAppInstances1.Active := true;
JvAppInstances1.MaxInstances := 1;
JvAppInstances1.SendCmdLine := true;
JvAppInstances1.AutoActivate := true;
Application.Title := ´Acê_Informatica´;
Frm_inicio := TFrm_inicio.Create(application);
Frm_inicio.Show;
Frm_inicio.Refresh;
...
Application.CreateForm(TDMCN, DMCN);
Application.CreateForm(TFrm_Menu, Frm_Menu);
....
FreeAndNil(Frm_inicio);
Application.Run;
---------------------
100+
ANT.CARLOS/SP
Inseri um comp. do JEDI, uma instancia do aplicativo no meu Menu principal, fiz o teste e funcionou tudo ok.
Pois pecebi q o programa p/ verifiar, carrega o programa até o menu, p/ ser detectado, então resolvi coloca-lo no .dpr.
Ao criar e inseri o mesmo no .dpr, não funcionou.
Veja a rotinas:
A quem puder ajudar, desde já meus agradecimentos.
---------------------
//Arquivo .DPR...
....
Var Frm_inicio : TFrm_inicio;
JvAppInstances1: TJvAppInstances;
begin
//---------------------------------//
Application.Initialize;
//---------------------------------//
JvAppInstances1:= TJvAppInstances.Create(application);;
JvAppInstances1.Active := true;
JvAppInstances1.MaxInstances := 1;
JvAppInstances1.SendCmdLine := true;
JvAppInstances1.AutoActivate := true;
Application.Title := ´Acê_Informatica´;
Frm_inicio := TFrm_inicio.Create(application);
Frm_inicio.Show;
Frm_inicio.Refresh;
...
Application.CreateForm(TDMCN, DMCN);
Application.CreateForm(TFrm_Menu, Frm_Menu);
....
FreeAndNil(Frm_inicio);
Application.Run;
---------------------
100+
ANT.CARLOS/SP
Ant.carlos/sp
Curtir tópico
+ 0
Responder
Posts
30/06/2008
Onjahyr
Cara... Use MUTEX, é bem mais simples e direto. Componentes é só para qdo não existir opções ou quiser fazer mais rápido sem pesquisar....
[b:cd6cb756ae]Exemplo:[/b:cd6cb756ae]
Simples assim.... Aonde tem: [b:cd6cb756ae]12A,B-FD..Py5/4[/b:cd6cb756ae]
Pode renomear para qualquer coisa, nome, número, simbolo.... é o identificador que ficará na memória, se for executar mais de uma vez ele vê que este Mutex já existe e não permitirá executar a aplicação.
Obs.: Não é tirando o mérito dos componentes da JEDI não, alias, são os melhores componentes que existe para Delphi. Eu mesmo uso eles!
Blz.
[b:cd6cb756ae]Exemplo:[/b:cd6cb756ae]
program Exemplo; uses Windows, {$R *.res} var Mutex : THandle; begin // Pode colocar caracteres, simbolos, numeros, etc... Mutex := CreateMutex(nil, True, ´12A,B-FD..Py5/4´); if Mutex <> 0 then //Encontrou sua aplicação begin if GetLastError = ERROR_ALREADY_EXISTS then begin CloseHandle(Mutex); // Fecha Handle Halt; // Fecha a segunda aplicação Exit; // Sai end; end; Application.Initialize; Application.Title := ´Título da minha aplicação´; Application.CreateForm(Tfrm_Principal, frm_Principal); Application.Run; end.
Simples assim.... Aonde tem: [b:cd6cb756ae]12A,B-FD..Py5/4[/b:cd6cb756ae]
Pode renomear para qualquer coisa, nome, número, simbolo.... é o identificador que ficará na memória, se for executar mais de uma vez ele vê que este Mutex já existe e não permitirá executar a aplicação.
Obs.: Não é tirando o mérito dos componentes da JEDI não, alias, são os melhores componentes que existe para Delphi. Eu mesmo uso eles!
Blz.
Responder
Clique aqui para fazer login e interagir na Comunidade :)