schaukoski Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 OláMeu Programa está apresentando os seguintes erros, antes de compilar.procedure TForm1.Button1Click(Sender: TObject);beginusuariologado := Combobox1.text; if (dmData.atlogins.Locate('Senha', maskedit1.text, [loCaseInsensitive])) then if (combobox1.text) = dmData.atlogins.FieldByname('Nível').asstring then begin if combobox1.text = 'ADMINISTRADOR' then begin Form1.Hide; Form1.Hide; FormADM.SHowmodal; Close; end end; if combobox1.text = 'RECEPCIONISTA' then begin Form1.Hide; Form1.Hide; FormREC.SHowmodal; Close; end end;(64) if combobox1.text = 'ENTREGADOR' then begin Form1.Hide; Form1.Hide; FormENT.SHowmodal;(69) Close; end(71) end; end else if (combobox1.text = '') and (maskedit1.text = '') then label3.caption := ' * Usuário e Senha em BRANCO *' end; begin label3.caption := ' * Nível de acesso incompatível com usuário *'; combobox1.Text := ''; combobox1.SetFocus; end else begin label3.Caption := ' * SENHA INCORRETA * '; maskedit1.Text := ''; maskedit1.setfocus; end end;end. **** ERROS >[Error] Unit1.pas(64): Declaration expected but 'IF' found [Error] Unit1.pas(69): '(' expected but ';' found [Error] Unit1.pas(71): '.' expected but 'END' foundnão consegui por os espacos, esse forum junta os espacos fiko meio confuso de ver =/ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 Meu amigo, poste código sempre dentro de uma caixa de código pra agente poder vizualizar os blocos.O erro está na linha 62, tire esse end.Porque assim ele considera o end da linha 63 como sendo fim do procedimento.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Novembro 10, 2006 Autor Denunciar Share Postado Novembro 10, 2006 thales valeuzao mano..... era bem isso =)mas ..não consegui por em caixa de codigo .. como faço? pra postar no forum em caixa de codigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 se você observar em cima da caixa onde você escreve seu post tem um botão #Clique nele e escreva seu código depois clique nele denovo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Novembro 10, 2006 Autor Denunciar Share Postado Novembro 10, 2006 Ah sim Obrigado procedure TForm1.Button1Click(Sender: TObject); begin usuariologado := Combobox1.text; if (dmData.atlogins.Locate('Senha', maskedit1.text, [loCaseInsensitive])) then begin if (combobox1.text) = dmData.atlogins.FieldByname('Nível').asstring then begin if combobox1.text = 'ADMINISTRADOR' then begin Form1.Hide; FormADM.SHowmodal; Close; end; if combobox1.text = 'RECEPCIONISTA' then begin Form1.Hide; FormREC.SHowmodal; Close; end; if combobox1.text = 'ENTREGADOR' then begin Form1.Hide; FormENT.SHowmodal; Close; end else begin label3.caption := ' * Nível de acesso incompatível com usuário *'; combobox1.Text := ''; combobox1.SetFocus; end end else begin label3.Caption := ' * SENHA INCORRETA * '; maskedit1.Text := ''; maskedit1.setfocus; end end; end; end. Thales. tenho uma perguntaNão está funcionando os ELSE do finalse eu coloko um conteudo falso no primeiro if, ele deveria mostrar SENHA INCORRETA, mas na acontece nada... ele não esta executando..? porque eu testei esse mesmo else ele funcionava, e agora não está mais =/o que tem de errado?quando eu executo inclusive, fica akelas bolinhas azuis do lado, dos comandos, dizendo que esta executando mas não tá não...tem algo errado? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thales Pontes Martins Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 nessa parte do código ->if combobox1.text = 'ENTREGADOR' then begin Form1.Hide; FormENT.SHowmodal; Close; endestá faltando ; no end.e está faltando outro end (sem ponto e vírgula) depois dele. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Novembro 10, 2006 Autor Denunciar Share Postado Novembro 10, 2006 mas se eu colocar istoele da um erro[Error] Unit1.pas(74): ';' not allowed before 'ELSE'da um erro no proximo else =/AHH já CONSEGUI""""adicionei mais um END ali, e deu certo!! valeeeuuuuuu =))))) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 10, 2006 Denunciar Share Postado Novembro 10, 2006 Olá schaukoski,Alem do ; que o Thales falou falta outro end antes do else, e tirar um end do finalDeixar um código bem arrumadinho e bem organizado é sempre bom, até mesmo pra encontra erros.procedure TForm1.Button1Click(Sender: TObject); begin usuariologado := Combobox1.text; if (dmData.atlogins.Locate('Senha', maskedit1.text, [loCaseInsensitive])) then begin if (combobox1.text) = dmData.atlogins.FieldByname('Nível').asstring then begin if combobox1.text = 'ADMINISTRADOR' then begin Form1.Hide; FormADM.SHowmodal; Close; end; if combobox1.text = 'RECEPCIONISTA' then begin Form1.Hide; FormREC.SHowmodal; Close; end; if combobox1.text = 'ENTREGADOR' then begin Form1.Hide; FormENT.SHowmodal; Close; end; end else begin label3.caption := ' * Nível de acesso incompatível com usuário *'; combobox1.Text := ''; combobox1.SetFocus; end; end else begin label3.Caption := ' * SENHA INCORRETA * '; maskedit1.Text := ''; maskedit1.setfocus; end; end;Abs. Progr'amador. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 11, 2006 Denunciar Share Postado Novembro 11, 2006 if (combobox1.text) = dmData.atlogins.FieldByname('Nível').asstring then begin if combobox1.text = 'ADMINISTRADOR' then begin Form1.Hide; FormADM.SHowmodal; Close; end; if combobox1.text = 'RECEPCIONISTA' then begin Form1.Hide; FormREC.SHowmodal; Close; end; if combobox1.text = 'ENTREGADOR' then begin Form1.Hide; FormENT.SHowmodal; Close; end; end else begin schaukoski, uma palavrinha(dica) sobre esta parte do código... Observe que após validar o if inicial, você faz três testes com o mesmo componente, mesmo que o primeiro já seja verdadeiro. A estrutura lógica implementada ficaria melhor se você a utilizasse da mesma forma que você pensa nela. Vejamos:Se Text for igual a Administrador então faço início do bloco - oculto o Form1 - mosto o FormADM - fecho este form fim do bloco senão for, verifico Se Text for igual a Recepcionista então faço início do bloco - oculto o Form1 - mosto o FormREC - fecho este form fim do bloco senão for, verifico Se Text ... Para isto você deveria introduzir o ELSE. if (combobox1.text) = dmData.atlogins.FieldByname('Nível').asstring then begin if combobox1.text = 'ADMINISTRADOR' then begin Form1.Hide; FormADM.SHowmodal; Close; end else if combobox1.text = 'RECEPCIONISTA' then begin Form1.Hide; FormREC.SHowmodal; Close; end else if combobox1.text = 'ENTREGADOR' then begin Form1.Hide; FormENT.SHowmodal; Close; end; end else begin Agora, se o primeiro teste resultar em verdadeiro, não será feito (desnecessariamente) o segundo e terceiro testes. Isto faz diferença quando se utiliza muitos if's, e deixa seu código mais lógico. ;) Outra coisa. Se está tratando todas as opções possíveis (as 3 implementadas) para o resultado do seu if inicial (teste do nível), então você pode ainda fazer uma otimização do código evitando repetição. Observe que para qualquer uma das 3 opções que você avalia, você inicialmente oculta o Form1 e, após mostrar o Form adequado à opção, fecha o Form "atual". Bom. Se, como sugerí antes, você estiver tratando todas as opções possíveis, então você poderia simplificar para esta forma:procedure TForm1.Button1Click(Sender: TObject); begin usuariologado := Combobox1.text; if (dmData.atlogins.Locate('Senha', maskedit1.text, [loCaseInsensitive])) then begin if (combobox1.text) = dmData.atlogins.FieldByname('Nível').asstring then begin Form1.Hide; if combobox1.text = 'ADMINISTRADOR' then FormADM.SHowmodal; else if combobox1.text = 'RECEPCIONISTA' then FormREC.SHowmodal; else if combobox1.text = 'ENTREGADOR' then FormENT.SHowmodal; Close; end else begin label3.caption := ' * Nível de acesso incompatível com usuário *'; combobox1.Text := ''; combobox1.SetFocus; end; end else begin label3.Caption := ' * SENHA INCORRETA * '; maskedit1.Text := ''; maskedit1.setfocus; end; end;[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
schaukoski
Olá
Meu Programa está apresentando os seguintes erros, antes de compilar.
**** ERROS >[Error] Unit1.pas(64): Declaration expected but 'IF' found
[Error] Unit1.pas(69): '(' expected but ';' found
[Error] Unit1.pas(71): '.' expected but 'END' found
não consegui por os espacos, esse forum junta os espacos fiko meio confuso de ver =/
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.