Ver la Versión Completa : saber cuando estoy editando un registro
jhcaboverde
12-02-2007, 20:29:43
bueno tengo un formulario "form2", con:dbedit1, DBNavigator1, button1 y un button2 que esta basado en un datasource de otro formulario ejemplo Form1.DataSource1 este datasource su origen es un ADOTable, ahora bien que necesito:
un button es salir y otro guardar, este ultimo deberia cuando se agrega un nuevo registro o se edita uno que ya este activarse el button de guardar cambios.
mil gracias anticipadas;
yo
Caral
12-02-2007, 21:06:26
Hola
Si el DBNavigator1 esta en edit o insert:
procedure FForm1.BitBtn1Click(Sender: TObject);
begin
If (DBNavigator1.State = dsEdit) or (DBNavigator1.State = dsInsert) then
begin
ADOTable1.Post;
end
else
Close;
end;
Saludos
kalisto
12-02-2007, 21:10:29
Ya que tienes un dbnavigator, podrias usar el boton para guardar que este tiene, de todas formas siquieres hacerlo con un boton independiente puedes hacerlo de la siguiente forma:
procedure Form1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if Form1.DataSource1.state in [dsedit, dsinsert] then
buttonGuardar.enabled:= true
else
buttonGuardar.enabled:= false;
end;
jhonny
12-02-2007, 21:20:58
Otra forma es usar un evento que se dispare cada que el dataSet cambie de estado y ese evento puede ser el StateChange del DataSource (ejemplo: dsEjemplo) que conecta el DataSet(ejemplo: tblEjemplo) y colocar alli algo como:
procedure TForm1.dsEjemploStateChange(Sender: TObject);
begin
tbgrabar.Enabled := (tblEjemplo.STATE IN DSEDITMODES);
end;
egostar
13-02-2007, 00:30:48
O tambien puedes mostrar cualquier estado en un StatusBar.
procedure TDataModule2.DSCustomersStateChange(Sender: TObject);
begin
FCustomers.StatusBar1.Panels[1].Text :=
'State = ' + GetEnumName(TypeInfo(TDataSetState),
Ord(IBCustomers.State));
end;
Saludos.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.