Fórum Duvidas com limite de tentativas #294205
01/09/2005
0
só que eu tentei um monte de rotinas mas nao consegui... se voces puderem me ajudar eu agradesço
o codigo eh o seguinte
procedure TFrmApresentacao.FormActivate(Sender: TObject); Var x : string; base: string; begin memo1.Lines.LoadFromFile(´c:\arquivos de programas\ellas\nvocc\nvocc.ini´); x:=Copy(memo1.Lines[1],9,100); if x = ´Vazio´ then begin showmessage(´Seja bem Vindo!!!´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender); end else if not FileExists(x) then begin Showmessage(´Nao foi possivel conectar ao banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender); end else try begin base := ´Provider=Microsoft.Jet.OLEDB.4.0´ + ´;Data Source=´ + x + ´;Persist Security Info=False´; adoconnection1.connectionString:= base; AdoConnection1.Connected := True; end except begin showmessage(´Erro ao conectar com o banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender); end end; timer1.Enabled:=True; end;
Fernando_cunha
Curtir tópico
+ 0Posts
01/09/2005
Rjun
Gostei + 0
01/09/2005
Fernando_cunha
esta parte do codigo le o arquivo ini.
memo1.Lines.LoadFromFile(´c:\arquivos de programas\ellas\nvocc\nvocc.ini´); x:=Copy(memo1.Lines[1],9,100);
Se no arquivo ini estiver escrito vazio, é porque é a primeira vez que é executado o programa. e abre a tela de configuracao para colocar o caminho do banco de dados no ini.
if x = ´Vazio´ then begin showmessage(´Seja bem Vindo!!!´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender); end
Se no Ini estiver qualquer caminho la eu verifico se este caminho é valido para que nao de problema ao abrir o programa
if not FileExists(x) then begin Showmessage(´Nao foi possivel conectar ao banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender); end else
Se ele nao entrou em nenhuma das condicoes acima, ou seja nao é a primeira vez que abre o programa, e o caminho que esta no ini existe, ai eu tento conectar ao banco de dados... se nao conectar ai da erro...
try begin base := ´Provider=Microsoft.Jet.OLEDB.4.0´ + ´;Data Source=´ + x + ´;Persist Security Info=False´; adoconnection1.connectionString:= base; AdoConnection1.Connected := True; end except begin showmessage(´Erro ao conectar com o banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender);
e se passar das 3 condicoes, ele coloca em enable o timer1 que da loading nos forms e abre o FrmPrincipal.
e o que eu preciso é que quando o usuario foi la e colocou o caminho no ini ex: c:\temp\123, logico que o programa vai dar erro... ai queria que o cara so pudesse tentar indicar o banco de dados umas 3 vezes... ai depois das 3 tentativas ele da um application.terminate sei la... eu ja tentei algumas coisas e nao consegui por isso to postando aqui.
obrigado pela ajuda por enquanto.
Gostei + 0
01/09/2005
Martins
Gostei + 0
01/09/2005
Fernando_cunha
varivel : = 1;
if Variavel < 4 then
ai faz todas estas rotinas. ....
..
...
....
else
application.terminate;
pois como todos estes codigos sao no evento onactivate e 3 condicoes ´malucas´ minha sempre chama o formactivate(sender) ... mas nao deu certo ... provavelmente eu errei em alguma coisa ou entao como voce disse : terei que ver direito este codigo
Gostei + 0
01/09/2005
Martins
memo1.Lines.LoadFromFile(´c:\arquivos de programas\ellas\nvocc\nvocc.ini´); x:=Copy(memo1.Lines[1],9,100);
if x = ´Vazio´ then begin showmessage(´Seja bem Vindo!!!´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender); end
if not FileExists(x) then begin Showmessage(´Nao foi possivel conectar ao banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender); end else
try begin base := ´Provider=Microsoft.Jet.OLEDB.4.0´ + ´;Data Source=´ + x + ´;Persist Security Info=False´; adoconnection1.connectionString:= base; AdoConnection1.Connected := True; end except begin showmessage(´Erro ao conectar com o banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); FrmConfiguracao.showmodal; FormActivate(Sender);
Certo então vamos ver somente a parte onde o usuário irá indicar o caminho para conexão com seu Banco, eh na tela de configuração do sistema?
pq se for é só vc ver, ele digita uma vez aí pede pra conectar, o caminho é inválido, tem uma var q recebe um valor no caso [b:b2d4c96ea5]1[/b:b2d4c96ea5], tenta novamente, incrementa +1, e lá tem q haver um if..then ..else.. para verificar se tentativa > 3 então Contate o suporte, pq suas tentativas de config . o sistema se esgotaram.
+/- isso, não sei bem como vc tá fazendo.
Martins
Gostei + 0
01/09/2005
Martins
procedure TFrmxxx.ButtonxxxClick(Sender: TObject); begin if x < 4 then begin if Edit1.Text = ´Teste´ then begin ShowMessage(´Teste hehehe ´+IntToStr(x)); end else X:= X + 1; end else ShowMessage(´Vc já esgotou toda a minha paciência!!´); end;
Só um exemplo de como a instrução condicional ficaria, x sendo uma var publica.
Gostei + 0
02/09/2005
Fernando_cunha
veja o codigo...
begin if memo1.Tag < 4 then begin if timer1.Tag <> 2 then begin memo1.Lines.LoadFromFile(´c:\arquivos de programas\ellas\nvocc\nvocc.ini´); x:=Copy(memo1.Lines[1],9,100); if x = ´Vazio´ then begin showmessage(´Seja bem Vindo!!!´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); timer1.tag:= 1; FrmConfiguracao.showmodal; FormActivate(Sender); end else if not FileExists(x) then begin Showmessage(´Nao foi possivel conectar ao banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); timer1.tag:= 1; FrmConfiguracao.showmodal; FormActivate(Sender); end else try begin base := ´Provider=Microsoft.Jet.OLEDB.4.0´ + ´;Data Source=´ + x + ´;Persist Security Info=False´; adoconnection1.connectionString:= base; AdoConnection1.Connected := True; end except begin showmessage(´Erro ao conectar com o banco de dados´); Application.CreateForm(TFrmConfiguracao, FrmConfiguracao); timer1.tag:= 1; FrmConfiguracao.showmodal; FormActivate(Sender); end end; timer1.Enabled:=True; end else application.Terminate; end else Showmessage( ´ voce tentou 3 vezes ´ ); application.Terminate; end;
e na tela Frmconfiguracao eu coloquei o seguinte
if FrmApresentacao.memo1.Tag <> 4 then Frmapresentacao.Memo1.Tag := Frmapresentacao.Memo1.Tag + 1
Funcionou ... esta uma solução meio ´porca´ mas esta funcionando... qualquer coisa eu tento um codigo mais limpo... ta muito enrolado ele.... mas funciona... valeu pessoal...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)