Muskt 0 Denunciar post Postado Maio 28, 2007 Olá a todos,Estou com um problema que ja está me tirando do serio. Uso o Delphi 7 e tenho esse procedimento em meu programa:procedure TfrmSplashScreen.PegarConf;varRegistro: TRegistry;beginRegistro := TRegistry.Create;Registro.RootKey := hkey_local_machine;if (not Registro.OpenKey('software\Tasks2Do', false))then beginRegistro.OpenKey('software\Tasks2Do', True);if Application.MessageBox('Você gostaria de personalizar as configurações agora ?', 'Tasks2Do', MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON1) = ID_YESthen Application.MessageBox('Criar form de cfg', 'Tasks2Do', MB_OK)else beginRegistro.WriteBool('MultiCliente', False);Registro.WriteBool('Lembrarme', False);Registro.WriteBool('Rodando', False);end;end;cfgMultiCliente := Registro.ReadBool('MultiCliente');cfgRodando := Registro.ReadBool('Rodando');Registro.CloseKey;Registro.Free;end;Qndo a aplicação chega na linha : if Application.MessageBox('Você gostaria de personalizar as configurações agora ?', 'Tasks2Do', MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON1) = ID_YES ela volta até a linha: Registro.RootKey := hkey_local_machine; e não exibe o messagebox. Alguem tem alguma ideia ? Alguem poderia testar e me falar se funcionou ?Sem mais, abraços ! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 28, 2007 Testei aqui e funcionou certinho, ou seja, mostrou a mensagem e pude escolher entre Sim/Não, funcionou tudo de forma prevista... Compartilhar este post Link para o post Compartilhar em outros sites
Muskt 0 Denunciar post Postado Maio 28, 2007 Desculpe, mais qual a versão do delphi que você usa ? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 28, 2007 Delphi 6.Já tentou rodar passo-a-passo ? Compartilhar este post Link para o post Compartilhar em outros sites
Muskt 0 Denunciar post Postado Maio 28, 2007 Sim, uso Delphi 7... Não deve ser por causa disso, certo ? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 28, 2007 Não poderia, o que achei mais estranho foi a questão de retornar para linhas acima, isso não teria como acontecer... não tem como rodar passo-a-passo e ver o que acontece... ? Compartilhar este post Link para o post Compartilhar em outros sites
Muskt 0 Denunciar post Postado Maio 28, 2007 Mais é assim que vi que é isso que aconteçe !Fazendo passo-a-passo ! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 28, 2007 No caso quando rodar diretamente pelo .exe funciona ? Tenta desmarcar o seguinte parametro no delphi... Vai em Tools -> Debugger Options -> Language Exceptions e desmarca a opção Stop on delphi exceptions, e veja se funciona... Pode ainda mudar o seu fonte na validação, fazendo: procedure TfrmSplashScreen.PegarConf;var Registro: TRegistry;beginRegistro := TRegistry.Create;Registro.RootKey := hkey_local_machine;if (not Registro.OpenKey('software\Tasks2Do', false)) then begin Registro.OpenKey('software\Tasks2Do', True); if Application.MessageBox('Você gostaria de personalizar as configurações agora ?', 'Tasks2Do', MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON1) = mrYes then Application.MessageBox('Criar form de cfg', 'Tasks2Do', MB_OK) else begin Registro.WriteBool('MultiCliente', False); Registro.WriteBool('Lembrarme', False); Registro.WriteBool('Rodando', False); end; end;cfgMultiCliente := Registro.ReadBool('MultiCliente');cfgRodando := Registro.ReadBool('Rodando');Registro.CloseKey;Registro.Free;end; Compartilhar este post Link para o post Compartilhar em outros sites
Muskt 0 Denunciar post Postado Maio 29, 2007 Quando rodo direto do exe o que ocorre é o seguinte:1º ele mostra a messagebox correta2º dps ele mostra n caixas de erro falando q não conseguiu recuperar os dados que eu pedi.Pra sair tenho q usar crtl + alt + del ...Desculpe a falta de exatidão, mais é por que estou na faculdade agora e aqui não tenho o projeto.Uma duvida que me ocorreu agora:Estou usando o access 2007 nesse projeto, para eu rodar em outras maquinas tem como eu copiar/instalar apenas os drivers de conexão ADO ou tenho que instalar o access 2007 na maquina ?Obrigado da atenção, chegando em casa dou mais detalhes das mensagens de erro.[]'s Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 29, 2007 Ok. Quanto ao access não sei lhe dizer ao certo, nunca usei ele como BD desta forma, teria que testar mesmo.Veja então na sua casa o que mais pode estar influenciando no seu projeto... Compartilhar este post Link para o post Compartilhar em outros sites
Muskt 0 Denunciar post Postado Junho 1, 2007 Descobri !Desculpe a demora mais hoje descobri o problema !!O negocio é o seguinte, a chamada estava em um timer e a solução foi simples, só mandar desativar o timer antes de entrar no procedimento.Agora se souber o negocio do access fico grato ![]'s, obrigado da atenção/ajuda e até mais !! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 beleza... Bom que encontrou o problema... Para o access, pelo princípio seria necessário ter o driver Microsoft Access Driver para conseguir acessar... como você montou a sua string de conexão ? Compartilhar este post Link para o post Compartilhar em outros sites
Muskt 0 Denunciar post Postado Junho 1, 2007 Grande Marcio ! Então, a conexão é a seguinte: Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=.\Tasks2Do.bdd;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False Só que o problema é o seguinte estou usando Access 2007 e o provedor dele do ADO é diferente das demais versões. Tentei abrir o projeto numa maquina com Delphi 6 (Uso o 7) e sem Access instalado e deu um erro falando que ele não achou o provedor. Minha duvida é se existe um jeito de instalar so o provedor sem instalar o Access (o que eu axo que resolveria o problema). Sei lá .. talvez criando um instalador ... espero sujestoes. []'s ! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 Tente fazer um teste instalando uma versão mais atual do MDAC quem sabe instala o driver... Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 1, 2007 Outro teste que pode fazer, é usar a opção de OleDb como MICROSOFT JET 4.0 OLE DB PROVIDER Compartilhar este post Link para o post Compartilhar em outros sites
Muskt 0 Denunciar post Postado Junho 1, 2007 Tentei usar o MDAC mais não deu, alem de tudo o MDAC 2.8 SP1 distribui os mesmos DA que vem no WinXP SP2 :(Vou tertar usando o OLE então ... dps dou uma nova posição Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 2, 2007 beleza... Faz teste com esta outra opção de OleDb, pelo visto basta ter o Mdac atualizado e já tem disponível o mesmo... Compartilhar este post Link para o post Compartilhar em outros sites