Fórum problemas com componente ribbon #415719
22/04/2012
0
nele tem uma rotina que quando tento abrir o sistema mais de uma vez ele me avisa que ja esta aberto, isto fuunciona beleza, mas quando migrei o sistema para delphi 2010 e mudei o menu para o uso do componente ribbom deixando o meu sistema igual ao office 2007, ai que veio o problema, minha rotima que funcionava no delphi 7 agora não funciona no delphi 2010, ou seja meu sistema permite que eu abra mais de uma vez, e isso ta me trazendo muita dor de cabeça.
se alguem souber uma jeito de resolver, me ajude. minha velha rotina não funciona não adianta. acho que o novo componente autera o modo de como o sistema trabalha.
atenciosamente
edson garcia de melo
Edson Melo
Curtir tópico
+ 0Posts
22/04/2012
Joel Rodrigues
Mas poste aqui qual sua rotina de verificação.
No aguardo.
Gostei + 0
23/04/2012
Bruno Leandro
Gostei + 0
24/04/2012
Edson Melo
o osistema original era no delphi 7, passei para delphi 2010, ai parou, refiz um sisteminha de teste com essa rotina no delphi 2010, mas sem o ribbon e funcionou perfeito, e so colocar o ribbom que ela para de funcionar ou seja não consegue identificar se o sistema ja foi aberto.
o componente ribbom interfere no menu ja deu para notar. tomara que tenha solução, ate agora não vi muitos programas que usam esta opção a nao ser o office , e por incrivel que pareça o office tambem permite que sejam abertos varias vezes, sem que para isso seja informado, do ocorrido, não é mesmo. e por isso acho que esta e uma falha interna neste componene de acesso, que sem duvida nenhuma melhorou demais nosso sistemas. pena que ainda não esteja 100% confiavel, no meu caso claro
pensei ate em criar uma tabela, dentro do meu banco de dados, para registrar quantas vezes abro o sistema, se passar de 1 vez não permite a abertura do novo. certa vez peguei uma rotina onde dizia que o proprio windows internamente tem uma tabela para esta finalidade, teste a funcionou , mas não gostei muito, por isso me ocorreu esta solução, não usando a tabela do windows , mas sim uma criada por mim. o que acham , funcionaria
ate breve, e ajudem-me por favor
Gostei + 0
24/04/2012
Edson Melo
Gostei + 0
26/04/2012
Edson Melo
retirado do help DTDelphi versao 2.7
159 - Verificando se há uma cópia em execução
program Project1;
uses Forms,windows,dialogs, Unit1 in Unit1.pas;
{$R *.RES}
var
Hwnd: Thandle;
begin
Hwnd := FindWindow (TLloydSoft, LloydSoft);
if Hwnd = 0 then
begin
Application.Initialize;
Application.CreateForm(TLloydsoft, Lloydsoft);
Application.Run;
end
else
begin
MessageDlg (Este programa já esta aberto,mtinformation,[mbok], 0);
SetForegroundWindow (Hwnd);
end;
end.
{obs: para o exemplo acima funcionar a propriedade Caption do Formulário deve ser LloydSoft
favor ajudem-me a solucionar esta cauas de problemas
Gostei + 0
05/05/2012
Wesley Yamazack
Um abraço...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)