Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

egalauber

Erro no Delphi

Recommended Posts

Estou começando a aprender Delphi, peguei um tutorial e fui seguindo... até q chegou uma hora que deu estes erros:

[Error]ULogin.pas(47): Undeclared identifier: 'Dm'

[Error]ULogin.pas(47): Missing operator or semicolon

[Error]ULogin.pas(48): Missing operator or semicolon

[Error]ULogin.pas(48): Missing operator or semicolon

[Error]ULogin.pas(49): ')' expectec but identifier 'tab_Usuarios' found

[Error]ULogin.pas(54): Undeclared identifier: 'Edt'

[Error]ULogin.pas(56): ';' not allowed before 'ELSE'

[Fatal Error] Sistema.dpr(9): Could not compile used unit 'ULogin.pas'

 

 

O código é este:

unit ULogin;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TFrmLogin = class(TForm)
Image1: TImage;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
EdtApelido: TEdit;
EdtSenha: TEdit;
BtnOK: TBitBtn;
BtnCancelar: TBitBtn;
procedure BtnCancelarClick(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmLogin: TFrmLogin;

implementation

uses UMenuPrin, UDM;

{$R *.dfm}

procedure TFrmLogin.BtnCancelarClick(Sender: TObject);
begin

Application.Terminate;

end;

procedure TFrmLogin.BtnOKClick(Sender: TObject);
begin

Dm.Tab_Usuarios.Open; // abre a tabela tab_Usuarios
FrmMenuPrin.StatusBar1.Panels[2].Text := ' Usuário:' + FrmLogin.EdtApelido.Text + '-' + Dm.tab_UsuariosUsuDepto.AsSTring;
If not (Dm.tab_Usuarios.Locate('UsuApelido', FrmLogin.EdtApelido.Text, [loPartialKey])) or (Dm.tab_UsuariosUsuSenha.Value <> FrmLogin.EdtSenha.Text) then

begin
MessageDlg('Nome ou senha do usuário inválidos.'+#13+#13 + 'Se você esqueceu sua senha, consulte'+#13+'O administrador do sistema', mtError, [mbOK],0);
EdtSenha.Clear; // limpa o objeto EdtSenha
Edt.Senha.SetFocus; // Ajusta o foco para o objeto EdtSenha
end;
else

begin
FrmLogin.Hide; // Esconde a tela
FrmMenuPrin.ShowModal; // chama a tela FrmMenuPrin no modo normal
FrmLogin.Release; // Remove a tela da memória
FrmLogin := Nil; //Atribui conteúdo nulo para a variável de tela FrmLogin
end;


end;

end.

Fiquei a tarde inteira tentando resolver, mas como eu disse, sou iniciante no Delphi.

Vi algumas coisas falando de declarar no Unit, ou no Uses sei lá.... não entendi muito bem.

 

Ajuda aí pessoal!

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

[Error]ULogin.pas(47): Undeclared identifier: 'Dm' -> não encontrou o DM (possivelmente pode ser um DataModule) - Faltou dar ALT+F11 para add a Uses

[Error]ULogin.pas(47): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

[Error]ULogin.pas(48): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

[Error]ULogin.pas(48): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

[Error]ULogin.pas(49): ')' expectec but identifier 'tab_Usuarios' found -> Faltou o ')' (parenteses)

[Error]ULogin.pas(54): Undeclared identifier: 'Edt' -> não encontrou o Edt

[Error]ULogin.pas(56): ';' not allowed before 'ELSE' -> Não pode utilizar ; antes de ELSE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma aí, vamos por partes....

 

 

[Error]ULogin.pas(47): Undeclared identifier: 'Dm' -> não encontrou o DM (possivelmente pode ser um DataModule) - Faltou dar ALT+F11 para add a Uses

 

Como que eu faço isso?

Quando aperto ALT+F11 tem o ULogin lá.

 

 

 

[Error]ULogin.pas(47): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

[Error]ULogin.pas(48): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

[Error]ULogin.pas(48): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

 

Olha só as linhas 47 e 48, parece que não tá faltando o ';'

 

47: Dm.Tab_Usuarios.Open; // abre a tabela tab_Usuarios

48: FrmMenuPrin.StatusBar1.Panels[2].Text := 'Usuário:' + FrmLogin.EdtApelido.Text + '-' + Dm.tab_UsuariosUsuDepto.AsSTring;

 

 

 

[Error]ULogin.pas(49): ')' expectec but identifier 'tab_Usuarios' found -> Faltou o ')' (parenteses)

 

Olha a linha 49, parece que os '()' estão corretos:

 

49: If not (Dm.tab_Usuarios.Locate('UsuApelido', FrmLogin.EdtApelido.Text, [loPartialKey])) or (Dm.tab_UsuariosUsuSenha.Value <> FrmLogin.EdtSenha.Text) then

 

 

 

[Error]ULogin.pas(54): Undeclared identifier: 'Edt' -> não encontrou o Edt

 

Como assim??

 

 

 

[Error]ULogin.pas(56): ';' not allowed before 'ELSE' -> Não pode utilizar ; antes de ELSE

 

Essa eu consegui resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

[Error]ULogin.pas(47): Undeclared identifier: 'Dm' -> não encontrou o DM (possivelmente pode ser um DataModule) - Faltou dar ALT+F11 para add a Uses

 

 

Como que eu faço isso?

Quando aperto ALT+F11 tem o ULogin lá.

 

Você criou o DataModule e renomeou para DM?

 

 

[Error]ULogin.pas(47): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

[Error]ULogin.pas(48): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

[Error]ULogin.pas(48): Missing operator or semicolon -> Faltou o ';' (ponto-e-virgula)

 

Olha só as linhas 47 e 48, parece que não tá faltando o ';'

 

47: Dm.Tab_Usuarios.Open; // abre a tabela tab_Usuarios

48: FrmMenuPrin.StatusBar1.Panels[2].Text := 'Usuário:' + FrmLogin.EdtApelido.Text + '-' + Dm.tab_UsuariosUsuDepto.AsSTring;

Experimente deixar tudo na mesma linha, pode ser tambem pela falta do DM

 

[Error]ULogin.pas(49): ')' expectec but identifier 'tab_Usuarios' found -> Faltou o ')' (parenteses)

 

 

Olha a linha 49, parece que os '()' estão corretos:

 

49: If not (Dm.tab_Usuarios.Locate('UsuApelido', FrmLogin.EdtApelido.Text, [loPartialKey])) or (Dm.tab_UsuariosUsuSenha.Value <> FrmLogin.EdtSenha.Text) then

 

Experimente colocar todo o conteudo do IF dentro dos (), assim:

If not [b]([/b](Dm.tab_Usuarios.Locate('UsuApelido', FrmLogin.EdtApelido.Text, [loPartialKey])) or (Dm.tab_UsuariosUsuSenha.Value <> FrmLogin.EdtSenha.Text)[b])[/b] then

 

[Error]ULogin.pas(54): Undeclared identifier: 'Edt' -> não encontrou o Edt

 

 

Como assim??

 

Edt.Senha.SetFocus; -> você colocou um Edt.Senha, creio que o correto seria EdtSenha

 

[Error]ULogin.pas(56): ';' not allowed before 'ELSE' -> Não pode utilizar ; antes de ELSE

 

Essa eu consegui resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hãããmmmmm......

comecei a entender.

 

Eu tinha um DataModule que estava com nome de DataModule1. Daí foi só mudar o Dm para DataModule1 aí resolveu quase tudo.

 

O Edt.Senha eu tirei o '.' ficando EdtSenha

 

 

 

 

 

Aí deu um outro erro:

 

[Fatal ERROR] Sistema.dpr(10): File not found: 'Dm.dcu'

 

 

a linha 10 é essa:

 

Dm in 'Dm.pas' {DataModule2: TDataModule};

 

 

Daí eu simplesmente tirei essa linha 10, aí funcionou. Não deu mais erro.

 

Mas será que eu podia tirar essa linha 10 ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.