Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
neltonarsi Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Terça-Feira, 15 de Outubro de 2013 Mensagens: 40
|
Enviada: Seg Abr 27, 2015 6:32 pm Assunto: Desabilitar botões |
|
|
Boa noite galera!
Primeiramente agradeço a todos do Fórum, pois está sendo muito importante para meu aprendizado.
Estou desenvolvendo um sistema simples de cadastro do Delphi 2010 com BD MySQL 5.6 e não estou conseguindo implementar uma situação que imagino ser simples.
Criei os botões de navegação (Primeiro, Anterior, Próximo e Último) e gostaria de fazer uma comparação com o dado do formulário e os dados do BD. Quando o dado do formulário for igual ao último registro do BD, desabilitar os botões Próximo e Último e quando o dado do formulário for igual ao primeiro registro do BD, desabilitar os botões Primeiro e Anterior.
Acontece que consigo consultar os dados constantes no BD, mas não consigo colocar esta comparação em prática.
Desde já agradeço!
Att. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
anderbelluno Colaborador
![Colaborador Colaborador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/colaborador.gif)
![](images/avatars/22044518f5acebeaf9.gif)
Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Ter Abr 28, 2015 1:34 am Assunto: |
|
|
Supondo que vc esteja usando um SQLDataSet para se conectar ao MySql, tenta assim, pra mim funciona:
Código: |
begin
if SQLDataSet1.eof = true then
begin
btn_Proximo.enabled := false;
btn_Ultimo.enabled := false;
end
else
begin
btn_Proximo.enabled := true;
btn_Ultimo.enabled := true;
end;
// habilita botoes de navegaçao
if SQLDataSet1.Bof = true then
begin
btn_Inicio.enabled := false;
btn_Anterior.enabled := false;
end
else
begin
btn_Inicio.enabled := true;
btn_Anterior.enabled := true;
end;
end; |
|
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
neltonarsi Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Terça-Feira, 15 de Outubro de 2013 Mensagens: 40
|
Enviada: Ter Abr 28, 2015 10:46 am Assunto: |
|
|
Eu criei uma procedure para cada botão e vou postar a do botão anterior para ver como está:
procedure TfrmPessoas.btnAnteriorClick(Sender: TObject);
begin
with dmConexao.qrPessoas do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM pessoas, ');
SQL.Add('(SELECT codPessoa CodPrimeiro FROM pessoas ORDER BY codPessoa ASC LIMIT 1)Primeiro, ');
SQL.Add('(SELECT codPessoa CodUltimo FROM pessoas ORDER BY codPessoa DESC LIMIT 1)Ultimo ');
SQL.Add('WHERE codPessoa < :codPessoa ');
SQL.Add('ORDER BY codPessoa DESC ');
dmConexao.qrPessoas.Parameters.ParamByName('codPessoa').Value:= edtCodigo.Text;
Open;
end;
begin
frmPessoas.edtCodigo.Text:= dmConexao.qrPessoas.FieldByName('codPessoa').Text;
// frmPessoas.edtDataCadastro.Text:= converteData(dmConexao.qrPessoas.FieldByName('dataCadastro').Text);
frmPessoas.edtDataCadastro.Text:= dmConexao.qrPessoas.FieldByName('dataCadastro').Text;
frmPessoas.edtDataAtCadastro.Text:= dmConexao.qrPessoas.FieldByName('dataAtCadastro').Text;
frmPessoas.cboTipoPessoa.Text:= dmConexao.qrPessoas.FieldByName('tipoPessoa').Text;
frmPessoas.edtNome.Text:= dmConexao.qrPessoas.FieldByName('nomePessoa').Text;
frmPessoas.edtDataNasc.Text:= dmConexao.qrPessoas.FieldByName('dataNascimento').Text;
frmPessoas.cboEstadoCivil.Text:= dmConexao.qrPessoas.FieldByName('estadoCivil').Text;
frmPessoas.cboSexo.Text:= dmConexao.qrPessoas.FieldByName('sexo').Text;
frmPessoas.edtCPF.Text:= dmConexao.qrPessoas.FieldByName('cpf').Text;
frmPessoas.edtRG.Text:= dmConexao.qrPessoas.FieldByName('rg').Text;
frmPessoas.edtCNPJ.Text:= dmConexao.qrPessoas.FieldByName('cnpj').Text;
frmPessoas.edtInscEstadual.Text:= dmConexao.qrPessoas.FieldByName('InscEstadual').Text;
frmPessoas.edtEndereco.Text:= dmConexao.qrPessoas.FieldByName('endereco').Text;
frmPessoas.edtNumero.Text:= dmConexao.qrPessoas.FieldByName('numero').Text;
frmPessoas.edtComplemento.Text:= dmConexao.qrPessoas.FieldByName('complemento').Text;
frmPessoas.edtBairro.Text:= dmConexao.qrPessoas.FieldByName('bairro').Text;
frmPessoas.edtCEP.Text:= dmConexao.qrPessoas.FieldByName('cep').Text;
frmPessoas.DBcboEstado.KeyValue:= dmConexao.qrPessoas.FieldByName('codEstado').Text;
frmPessoas.DBcboCidade.KeyValue:= dmConexao.qrPessoas.FieldByName('codCidade').Text;
frmPessoas.edtTelefone.Text:= dmConexao.qrPessoas.FieldByName('telefone').Text;
frmPessoas.edtCelular.Text:= dmConexao.qrPessoas.FieldByName('celular').Text;
frmPessoas.edtEmail.Text:= dmConexao.qrPessoas.FieldByName('email').Text;
colorCamposInicio();
if (frmPessoas.cboTipoPessoa.Text = 'FISICA') then
frmPessoas.lblDataInicio.Caption:= 'Data Nasc.'
else
frmPessoas.lblDataInicio.Caption:= 'Data Inicio';
Meu problema está aqui, quando eu tento comparar o código da pessoa que está sendo visualizado com o primeiro código do BD para desabilitar os botões primeiro e anterior. Neste caso ele não reconhece o 'CodPrimeiro' que foi o apelido dado ao select feito.
if dmConexao.qrPessoas.FieldByName('codPessoa').Value = dmConexao.qrPessoas.FieldByName('CodPrimeiro').Value then
begin
btnUltimo.Enabled:= True;
btnPrimeiro.Enabled:= False;
btnAnterior.Enabled:= False;
btnProximo.Enabled:= True;
end
else
begin
btnUltimo.Enabled:= True;
btnPrimeiro.Enabled:= True;
btnAnterior.Enabled:= True;
btnProximo.Enabled:= True;
end;
end;
end;
Se puder me ajudar, ficarei grato. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
anderbelluno Colaborador
![Colaborador Colaborador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/colaborador.gif)
![](images/avatars/22044518f5acebeaf9.gif)
Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Ter Abr 28, 2015 12:55 pm Assunto: |
|
|
Amigo, não precisa de tudo isso ai não.
faz assim:
Código: |
proceure Controla;
begin
if dmConexao.qrPessoas.eof = true then
begin
btn_Proximo.enabled := false;
btn_Ultimo.enabled := false;
end
else
begin
btn_Proximo.enabled := true;
btn_Ultimo.enabled := true;
end;
// habilita botoes de navegaçao
if dmConexao.qrPessoas.Bof = true then
begin
btn_Inicio.enabled := false;
btn_Anterior.enabled := false;
end
else
begin
btn_Inicio.enabled := true;
btn_Anterior.enabled := true;
end;
end;
procedure TfrmPessoas.btn_PrimeiroClick(Sender: TObject);
begin
dmConexao.qrPessoas.First;
Controla;
end;
procedure TfrmPessoas.btn_ProximoClick(Sender: TObject);
begin
dmConexao.qrPessoas.Next;
Controla;
end;
procedure TfrmPessoas.btn_AnteriorClick(Sender: TObject);
begin
dmConexao.qrPessoas.Prior;
Controla;
end;
procedure TfrmPessoas.btn_UltimoClick(Sender: TObject);
begin
dmConexao.qrPessoas.Last;
Controla;
end;
|
Acho que isso resolve seu problema. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
neltonarsi Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Terça-Feira, 15 de Outubro de 2013 Mensagens: 40
|
Enviada: Ter Abr 28, 2015 1:30 pm Assunto: |
|
|
Amigo, valeu pela informação. Deu certinho com sua sugestão.
Muito obrigado pela ajuda. Estou tentando aprender um pouco de Delphi, mas ainda estou apanhando muito.
Valeu. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
|