Fórum Como controlar os botões de navegação? #393186
30/12/2010
0
No evento DataChange do DataSource:
btPrimeiro.Enabled := not (dsEnsino.DataSet.BOF);
btAnterior.Enabled := btPrimeiro.Enabled;
btProximo.Enabled := not (dsEnsino.DataSet.EOF);
btUltimo.Enabled := btProximo.Enabled;
Mas não funciona!
Quando clico em btProximo (a tabela tendo 1 registro), ele fica habilitado, só desabilita quando clico pela segunda vez. Se tiver mais de um registro, quando chego no último só desabilita depois de clicar novamente.
Já fiz de tudo, já busquei outras alternativas no Google mas não achei nada.
Alguém poderia me ajudar? Só falta isso para concluir o aplicativo.
Agradeço a ajuda.
Robson Dantas
Curtir tópico
+ 0Posts
30/12/2010
Ricardo Araujo
vou colocar o código inteiro.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btnAdicionar: TButton;
btnAlterar: TButton;
btnExcluir: TButton;
btnCancelar: TButton;
btnSalvar: TButton;
procedure FormCreate(Sender: TObject);
procedure btnAdicionarClick(Sender: TObject);
procedure btnAlterarClick(Sender: TObject);
procedure btnCancelarClick(Sender: TObject);
procedure btnSalvarClick(Sender: TObject);
private
{ Private declarations }
public
procedure inicializa(btAdicionar, btAlterar, btExcluir, btCancelar, btSalvar: Boolean);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
{ TForm1 }
procedure TForm1.inicializa(btAdicionar, btAlterar, btExcluir,
btCancelar, btSalvar: Boolean);
begin
btnAdicionar.Enabled := btAdicionar;
btnAlterar.Enabled := btAlterar;
btnExcluir.Enabled := btExcluir;
btnCancelar.Enabled := btCancelar;
btnSalvar.Enabled := btSalvar;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
inicializa(true, true, true, false, false);
end;
procedure TForm1.btnAdicionarClick(Sender: TObject);
begin
inicializa(false, false, false, true, true);
end;
procedure TForm1.btnAlterarClick(Sender: TObject);
begin
inicializa(false, false, false, true, true);
end;
procedure TForm1.btnCancelarClick(Sender: TObject);
begin
inicializa(true, true, true, false, false);
end;
procedure TForm1.btnSalvarClick(Sender: TObject);
begin
inicializa(true, true, true, false, false);
end;
end.
att.
rbbarreto
rbbarreto@hotmail.com
Gostei + 0
31/12/2010
Marcos Iwazaki
Bom se isso realmente é um problema p vc, pode-se tentar usar o ClientdataSet.recordcount - p saber qtos registros vc tem e o clientdataset.recno para saber qual o index do registro atual q vc esta. Dae é so comparar os dois (se não me engano o RECNO começa no 0 e o recordcount no 1) então é so fazer a lógica.
T+
Gostei + 0
31/12/2010
Alan Souza
btPrimeiro.Enabled := not (dsEnsino.DataSet.BOF);
btAnterior.Enabled := btPrimeiro.Enabled;
btProximo.Enabled := not (dsEnsino.DataSet.EOF);
btUltimo.Enabled := btProximo.Enabled;
Gostei + 0
31/12/2010
Leandro
btPrimeiro.Enabled := not (dsEnsino.DataSet.BOF);
btAnterior.Enabled := btPrimeiro.Enabled;
btProximo.Enabled := not (dsEnsino.DataSet.EOF);
btUltimo.Enabled := btProximo.Enabled
testa para ver....
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)