Ir ao conteúdo
  • Cadastre-se
DaniBS01

Dúvidas para finalizar TCC x.x

Recommended Posts

Bom Dia Galera!!
 
Então, indo direto ao assunto, eu tenho meu tcc para finalizar, tenho que entregá-lo segunda (12/05 :x) e no caso ainda estou com algumas duvidas ainda! 
 
Uso o Delphi 7 e o SQL Server 2008. Com os componentes ADOConnection, ADOQuery, DataSource e ADODataSet.
 
Irei postar aqui, todas elas, se alguém puder me ajudar um pouquinho de cada dúvida já irá me ajudar muito! 
 
1º 
 
Estou com um problema na MDIForm e fsMDIChild... Estou usando um form de login (FControlaAcesso) no qual deixo ele no FORMSTYLE: fsNormal, um Form de menu principal (FMenu), no qual deixo ele no FORMSTYLE: MDIForm e os formulários filho (FCadastros), fsMDIChild.
 
O erro é o seguinte, eu faço o login tudo certinho, abre o menu, mas quando vou abrir um form filho, ele dá o seguinte erro: Project tcc.exe raised exception class EInvalidOperation with message 'Cannot create form. No MDI forms are currently active'. Process stopped. Use Step or Run to continue.
 
 
Sendo que antes de eu colocar o código para fazer com o form de login (FControlaAcesso),para conectar com um usuario criado no banco, ele não dava esse erro, os forms filho abriam normal.
 
Uma coisa que tentei foi fazer o tutorial desse link: http://grayhat-z.blogspot.com.br/2011/11/cannot-create-form-no-mdi-are-currently.html mas com esse link, quando termino o que ele diz para fazer ai nem abre o programa.
 
Alguns códigos que usei para logar com o usuario do banco de dados foram esses:
 
No FControlaAcesso:
  private    function PegaNomeusuario: String;
procedure TFControlaAcesso.FormActivate(Sender: TObject);begin  // inicializa os objetos na tela, com um conteúdo  FControlaAcesso.EB_USUARIO.Text := PegaNomeUsuario;  FControlaAcesso.EB_SENHA.Text := '';end;
procedure TFControlaAcesso.FormCreate(Sender: TObject);begin  FControlaAcesso.Caption := 'Controla o Acesso do Usuário';  // inicializa os objetos na tela, com um conteúdo  FControlaAcesso.EB_USUARIO.Text := PegaNomeUsuario;  FControlaAcesso.EB_SENHA.Text := '';end;
function TFControlaAcesso.PegaNomeusuario : String;var  NetUserNameLength : DWord;begin  NetUserNameLength:= 50;  SetLength(Result, NetUserNameLength);  GetUserName(pChar(Result), NetUserNameLength);  SetLength(Result, StrLen(pChar(Result)));end;
procedure TFControlaAcesso.bConfirmaClick(Sender: TObject);begin  VerificaSenha;end;
procedure TFControlaAcesso.VerificaSenha;begin    with  ADOQuery1 do      begin        ADOQuery1.Active := False;        ADOQuery1.SQL.Clear;        ADOQuery1.SQL.Add('SELECT NOME FROM USUARIOS where NOME = '+ QuotedStr(EB_USUARIO.Text)+' and senha = '+ QuotedStr(EB_SENHA.Text));        ADOQuery1.Active := True;   if recordcount > 0 then      begin        FMenu := TFMenu.Create(Application);        FMenu.ShowModal;        FMenu.BarraStatus.Panels[1].Text := 'Usuário:   '+ EB_USUARIO.Text;        FMenu.Free;      end  else     begin         Application.MessageBox('Usuário Não Cadastrado ou Inativo, Favor Verificar cadastro','Aviso',MB_OK+MB_ICONINFORMATION);         EB_USUARIO.SetFocus;      end;    end;end;

Na DPR:

begin  Application.Initialize;  Application.CreateForm(TDM, DM);  Application.CreateForm(TFControlaAcesso, FControlaAcesso);  // Cria o formulario do menu do sistema  Application.CreateForm(TFMenu, FMenu);  //verifica o resultado escolhido pelo usuario, ou seja, ok ou cancel  if (FControlaAcesso.ShowModal = mrOk) then    begin    //destroi o formulario do menu    FMenu.Destroy;    //destroi o formulario de acesso    FControlaAcesso.Destroy;    //fecha aplicação    Application.terminate;  end;

 

Gostaria de colocar no meu projeto, uma quantia de tentativas de senha, por exemplo se errar a senha 3 vezes o programa fecha... Tentei colocar já mas não deu muito certo... Creio que isso seja simples (pra vocês, nao pra mim kkk), so preciso saber onde colocar e qual código colocar :s

 

 

Preciso fazer um relatório que pesquisa por datas, por exemplo se eu pesquiso assim:
 
Data Inicial: 12/05/2014 e Data Final: 18/05/2014
 
Aparece apenas um registro, se eu pesquiso com 2 semanas de diferença ele aparece 2 registros e assim por diante.
 
 
Tenho um FormChild de Cadastro de Exames, ai ele tem um campo Lotes, no qual eu pesquiso o Lote, do cadastro de Lotes. Criei um Form de pesquisa, onde tem um grid, que armazena os dados do cadastro de lotes e gostaria que quando a pessoa selecionasse o registro no grid e clicasse em OK, ela fosse para o campo Lote, que tem no cadastro de exame, a princípio está assim:
 
 
No Botão OK:
 
procedure TFPesquisa.BitBtn1Click(Sender: TObject);begin  ModalResult := mrOk;end;

No Botão CANCELAR:

procedure TFPesquisa.BitBtn2Click(Sender: TObject);begin  ModalResult := mrCancel;end;

No FormCreate:

procedure TFPesquisa.FormCreate(Sender: TObject);begin // DataSourceP.DataSet.Locate('NOME',.Text,[loPartialKey, loCaseInsensitive]);}end;

Só que esse do form create eu coloquei como se eu tivesse usando o IBExpert, com SQLConnection, mas uso o ADOConnection, ADOQuery e assim por diante, gostaria de transformar esse código para SQL Server usando ADO.

 

5º 
 
Criptografar senhas de usuarios no banco.

 

6º e ultimo rs:
 
Estou com um problema no cadastro de lotes, fiz da mesma forma, como fiz os outros cadastros, mesmos componentes, códigos iguais (so mudando os nomes) e mesmo eu preenchendo os campos do cadastro de Lotes ele vai tudo nulo para o banco de dados (isso procede para o grid também é claro).
 
Conferi os códigos passo a passo, está tudo igual, mas os outros cadastros vão normal para o banco só o de lote vai tudo nulo para o banco  :/
 
 
Bom é isso, espero que vocês possam me ajudar em alguma dessas dúvidas... Muito Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×