Fórum onShow maluco... Estranho! #293092
25/08/2005
0
Alguém pode me ajudar a desvendar este segredo. É o seguinte vou primiro explicar como é minha aplicação. Estou desenvolvendo um sistema para Paróquias, minha aplicação é em MDI, no menu principal uso para chamar os forms com este código:
Try Try Screen.CUrsor := crSQLWait; DM.qPastoral.Open; Application.CreateForm(TFPastoral, FPastoral); FPastoral.Top := 15; Finally Screen.CUrsor := crDefault; End; Except DM.qPastoral.Close; End;
ele não carrega os forms no DM.
Quero fazer o seguinte, quando entro no form Pastoral ele carrega no onShow os código que verifica se tem o dado na tabela e se tiver ´SIM´ ele marca o CheckBox como State = cbChecked, se tiver NAO ele marca State = cbUnchecked. Uso este código:
procedure TFPastoral.FormShow(Sender: TObject); begin if DM.qPastoralCATEQUISTA.Value = ´SIM´ Then Begin CheckBox1.State := cbChecked; End; if DM.qPastoralCATEQUISTA.Value = ´NAO´ Then Begin CheckBox1.State := cbGrayed; End;
Mas as vezes quando abre funciona e as vezes não, QUANDO PESQUISO UM PESSOA ELE FUNCIONA E AS VEZES NÃO. PQ????
ESTOU COLOCANDO PARA CARREGAR NO LOCAL ERRADO? NÃO É NO onShow? Mas no onCreate dá a mesma coisa.
Obrigado
Rodrigo[/code]
Rodrigorpb
Curtir tópico
+ 0Posts
25/08/2005
Rodrigorpb
Rodrigo.
Gostei + 0
25/08/2005
Massuda
Pelo que você escreveu, dá impressão que o form TFPastoral mostra os dados de uma única pessoa. Tem garantia que o resultado da sua pesquisa é único?
Esse form TFPastoral tem algum componente data aware?
Uma outra coisa... eu prefiro o seguinte código ao invés do que você postou...
Screen.CUrsor := crSQLWait; Try DM.qPastoral.Open; Try Application.CreateForm(TFPastoral, FPastoral); FPastoral.Top := 15; except DM.qPastoral.Close; End; Finally Screen.CUrsor := crDefault; End;
Gostei + 0
25/08/2005
Rodrigorpb
Eu não uso nenhum componente data aware.
E eu não expliquei direito, tenho o form Pastoral que eu cadastro os dados Nome, Endereço, e um CheckBox que coloco se é ou não CATEQUISTA, e outra somente para fazer pesquisa destas pessoas, quando eu clico no botão pesquisa que está no form Pastoral ele fecha a o o form FPastoral, não sei se pode sei por isso. Ai ele abre o Form pesquisa e dentro do form pesquisa tenho outra query para fazer as pesquisas, quando fecho o Form pesquisa ele fecha a query do form pesquisa e abre novamente com este código:
Botão Visualizar
Try Try Screen.CUrsor := crSQLWait; DM.qPastoral.Open; Application.CreateForm(TFPastoral, FPastoral); FPastoral.Top := 15; Close; Finally Screen.CUrsor := crDefault; End; Except DM.qPastoral.Close; End;
Repare q coloquei apenas um close de baixo do Pastoral.
E tb gostaria de saber mais qual é a diferença entre meu código e o seu, as vezes o erro pode estar ai.
Obrigado.
Rodrigo.
Gostei + 0
25/08/2005
Massuda
Afinal, o form TFPastoral mostra os dados de uma única pessoa?
Tem garantia que o resultado da sua pesquisa é único?
Porque quando a pessoa [b:1313d7a53b]não[/b:1313d7a53b] é catequista você deixa o checkbox desabilitado (grayed) ao invés de deixá-lo desmarcado (unchecked)?
Gostei + 0
26/08/2005
Rodrigorpb
O Form mostra dados apenas de uma única pessoa.
Sobre o CheckBox foi engano meu, eu já arrumei isto.
Copiei as imagens da tela para vc dar uma olhada mas naum tenho como postar no forum, se vc puder passar seu e-mail, eu te envio.
Obrigado.
Rodrigo.
Gostei + 0
26/08/2005
Emerson Nascimento
Try Try Screen.CUrsor := crSQLWait; DM.qPastoral.Open; Application.CreateForm(TFPastoral, FPastoral); FPastoral.Top := 15; FPastoral.FormShow(FPastoral); Finally Screen.CUrsor := crDefault; End; Except DM.qPastoral.Close; End;
Gostei + 0
26/08/2005
Massuda
Gostei + 0
26/08/2005
Rodrigorpb
Como faço para monstrar as telas para vc, está no formato JPEG.
Outra, as vezes o CheckBox funciona e as vezes não, é muito entranho.
Rodrigo.
Gostei + 0
26/08/2005
Massuda
[color=red:cf0ded7a26]Por favor, tenha dó de quem está numa conexão discada... [b:cf0ded7a26]não coloque imagens grandes[/b:cf0ded7a26].[/color:cf0ded7a26]
Gostei + 0
26/08/2005
Rodrigorpb
Vou colocar o código em baixo a imagem dos seguintes botões, Pesquisa no Form Pessoas, Visualizar do Form Pesquisa, e tb onshow e oncreate dos dois.
O checkbox marcado no Dizimista é que eu esquci de colocar no botão inserir, para ficar como os outros.
[img]http://img386.imageshack.us/my.php?image=tala17dn.jpg[/img]
[img]http://img397.imageshack.us/my.php?image=telapesq6yl.jpg[/img]
FORM PESSOA BOTÃO PESQUISA
Try Screen.CUrsor := crSQLWait; Application.CreateForm(TFConsFieis, FConsFieis); FConsFieis.Top := 10; FPessoas.Close; Finally Screen.CUrsor := crDefault; End
FORM PESQUISA BOTÃO VISUALIZAR
Try Try Screen.CUrsor := crSQLWait; DM.qPessoas.Open; DM.qEstcivil.Open; DM.qEstcivil.FetchAll; DM.qProfissao.Open; DM.qProfissao.FetchAll; DM.qCidades.Open; DM.qCidades.FetchAll; DM.qComunidades.Open; DM.qComunidades.FetchAll; DM.qGruporeflexao.Open; DM.qGruporeflexao.FetchAll; DM.qMinisterio.Open; DM.qMinisterio.FetchAll; DM.qMovimento.Open; DM.qMovimento.FetchAll; DM.qPastoral.Open; DM.qPastoral.FetchAll; DM.qSexo.Open; DM.qSexo.FetchAll; Application.CreateForm(TFPessoas, FPessoas); FPessoas.Top := 5; //Catequista if FPessoas.edCatequista.Text = ´CATEQUISTA´ Then Begin FPessoas.cbCatequista.State := cbChecked; End; if FPessoas.edCatequista.Text = ´´ Then Begin FPessoas.cbCatequista.State := cbGrayed; End; //Dizimista if FPessoas.edDizimista.Text = ´SIM´ Then Begin FPessoas.cbDizimista.State := cbChecked; End; if FPessoas.edDizimista.Text = ´NAO´ Then Begin FPessoas.cbDizimista.State := cbUnchecked; End; if FPessoas.edDizimista.Text = ´´ Then Begin FPessoas.cbDizimista.State := cbGrayed; End; //Eucaristia if FPessoas.edEucaristia.Text = ´SIM´ Then Begin FPessoas.cbEucaristia.State := cbChecked; End; if FPessoas.edEucaristia.Text = ´NAO´ Then Begin FPessoas.cbEucaristia.State := cbUnchecked; End; if FPessoas.edEucaristia.Text = ´´ Then Begin FPessoas.cbEucaristia.State := cbGrayed; End; //Batismo if FPessoas.edBatismo.Text = ´SIM´ Then Begin FPessoas.cbBatismo.State := cbChecked; End; if FPessoas.edBatismo.Text = ´NAO´ Then Begin FPessoas.cbBatismo.State := cbUnchecked; End; if FPessoas.edBatismo.Text = ´´ Then Begin FPessoas.cbBatismo.State := cbGrayed; End; //Crisma if FPessoas.edCrisma.Text = ´SIM´ Then Begin FPessoas.cbCrisma.State := cbChecked; End; if FPessoas.edCrisma.Text = ´NAO´ Then Begin FPessoas.cbCrisma.State := cbUnchecked; End; if FPessoas.edCrisma.Text = ´´ Then Begin FPessoas.cbCrisma.State := cbGrayed; End; FConsFieis.Close; Finally Screen.CUrsor := crDefault; End; Except DM.qPessoas.Close; DM.qEstcivil.Close; DM.qProfissao.Close; DM.qCidades.Close; DM.qComunidades.Close; DM.qGruporeflexao.Close; DM.qMinisterio.Close; DM.qMovimento.Close; DM.qPastoral.Close; DM.qSexo.Close; End;
ONSHOW FORM PESSOA
//Catequista if DM.qPessoasCATEQUISTA.Value = ´CATEQUISTA´ Then Begin cbCatequista.State := cbChecked; End; if DM.qPessoasCATEQUISTA.Value = ´´ Then Begin cbCatequista.State := cbGrayed; End; //Dizimista if DM.qPessoasDIZIMISTA.Value = ´SIM´ Then Begin cbDizimista.State := cbChecked; End; if DM.qPessoasDIZIMISTA.Value = ´NAO´ Then Begin cbDizimista.State := cbUnchecked; End; if DM.qPessoasDIZIMISTA.Value = ´´ Then Begin cbDizimista.State := cbGrayed; End; //Eucaristia if DM.qPessoasEUCARISTIA.Value = ´SIM´ Then Begin cbEucaristia.State := cbChecked; End; if DM.qPessoasEUCARISTIA.Value = ´NAO´ Then Begin cbEucaristia.State := cbUnchecked; End; if DM.qPessoasEUCARISTIA.Value = ´´ Then Begin cbEucaristia.State := cbGrayed; End; //Batismo if DM.qPessoasBATIZADO.Value = ´SIM´ Then Begin cbBatismo.State := cbChecked; End; if DM.qPessoasBATIZADO.Value = ´NAO´ Then Begin cbBatismo.State := cbUnchecked; End; if DM.qPessoasBATIZADO.Value = ´´ Then Begin cbBatismo.State := cbGrayed; End; //Crisma if DM.qPessoasCRISMADO.Value = ´SIM´ Then Begin cbCrisma.State := cbChecked; End; if DM.qPessoasCRISMADO.Value = ´NAO´ Then Begin cbCrisma.State := cbUnchecked; End; if DM.qPessoasCRISMADO.Value = ´´ Then Begin cbCrisma.State := cbGrayed; End;
Só
Obrigado.
Gostei + 0
26/08/2005
Massuda
Explique claramente qual é o problema.
Gostei + 0
26/08/2005
Rodrigorpb
Quero que quando eu fazer a pesquisa ele marque os checkbox, como eu havia cadastrado. Para a pessoa saber se é Dizimista, 1ª Eucaristia...
Ex: Pesquisei Rodrigo, eu sou Dizimista ele vem marcado o checkbox. Agora pesquisei Camila, ela naum é dizimista, então fica Desmarcado.
Isso é que naum consigo. Por isso coloquei o codigo no onshow, mas as vezes da certinho e as vezes naum funciona.
Obrigado
Rodrigo
Gostei + 0
26/08/2005
Rjun
if FPessoas.edDizimista.Text = ´SIM´ Then Begin FPessoas.cbDizimista.State := cbChecked; End; if FPessoas.edDizimista.Text = ´NAO´ Then Begin FPessoas.cbDizimista.State := cbUnchecked; End; if FPessoas.edDizimista.Text = ´´ Then Begin FPessoas.cbDizimista.State := cbGrayed; End;
Gostei + 0
26/08/2005
Rjun
Gostei + 0
26/08/2005
Rodrigorpb
Obrigado.
Rodrigo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)