Ir ao conteúdo
  • Cadastre-se

DaniBS01

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. 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. http://imgur.com/bigv39M 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; 2º 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 3º 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. 4º 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: http://imgur.com/Gtn4aTI 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.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...