problemas com componente ribbon

Delphi

22/04/2012

pessoal tenho um sistema de venda em delphi 7 que funciona ok.

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

Edson Melo

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

22/04/2012

Cara, pra ter certeza que é o Ribbon o culpado, crie uma aplicação sem Ribbon e use sua rotina para verificar, se der certo, aí o problema é do componente.
Mas poste aqui qual sua rotina de verificação.

No aguardo.
GOSTEI 0
Bruno Leandro

Bruno Leandro

22/04/2012

talvez o problema possa ser o unicode, algumas rotinas precisam ser adaptadas. com o uso de pchar, pansichar, widestring, dependendo do caso
GOSTEI 0
Edson Melo

Edson Melo

22/04/2012

pessoal quanto a solicitação de se criar um aplicativo sem o ribbom, ja fiz e funcionou bem, e so colocar o ribbon , que não consigo fazer com que a rotima funcione.

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
Edson Melo

Edson Melo

22/04/2012

so para completar estou em uma lam house, não tenho internet em casa, vou pegar minha rotina e postar aqui para voces avaliarem, e ver se conseguem usar ou melhorar, so para constar peguei ela em um help se não me engano o nome do help e dbdelph, se alguem conhecer pode achar esta rotina la, mas vou postar aqui na proxima vez que vier na lan house, que espero seja amanha
GOSTEI 0
Edson Melo

Edson Melo

22/04/2012

como havia falado aqui esta a rotina que usava quando era com delphi 7 mas com delphi 2010 e componente ribbon nao roda



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
Wesley Yamazack

Wesley Yamazack

22/04/2012

Este tópico esta sendo tratato em outra página : https://www.devmedia.com.br/forum/componente-ribbon-dando-dor-de-cabeca/416236

Um abraço...
GOSTEI 0
POSTAR