Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
:S:S:S lo que pasa es que soy nuevo en Delphi, bueno relativamente, apenas llevo 2 meses y contando, y estoy a prueba y error, y la unica forma que miraba y conocia era esa, lo que si trate es que no puedo editar los DBEdit, ya que por su propiedad Datafield agrego al campo al que este asignado, y si lo muestra y todo pero no se, no me permite editarlo, no se si hay que poner algo en modo de edicion o que hacer, para permitir escribir y habilitar el boton de Guardar para que guarde todos los datos.
Responder Con Cita
  #2  
Antiguo 26-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
Si es posible que alguien me pueda mostrar una parte de como usan el evento OnDataChange del DataSource, para darme una idea ya que veo que no me entienden, espero me puedan ayudar con esto, que no es nad complicado pero que si me permitiria ahorrar codigo y mantener la idea que tengo ya que me pidieron usara ese evento, el cual como les decia no se como utilizarlo con Tedits, para que disparara ciertos procedimientos que quiero llevar acabo, com olo es el habilitar ciertos botones que yo tenga, etc etc, gracias
Responder Con Cita
  #3  
Antiguo 26-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que no has informado de qué base de datos estás usando, qué componentes, etc.
Responder Con Cita
  #4  
Antiguo 28-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
Componentes ADO para la conexion a BD, Base de Datos SQLServer.

y me explico mas detenidamente. paso por paso a ver si me entienden lo que quiero hacer, y como usar ese evento el OnDataChange en el DataSource.

Tendria 5 Botones: Nuevo, Guardar, GuardarModificacion, Limpiar, Cancelar y Cerrar.

1.- Capturo 2 campos de una tabla, Nombre y Apellido desde 2 Tedit respectivamente, con un boton de Nuevo.(Aqui solo el boton de GuardarModificacion esta inhabilitado, todos los demas estan Habilitados), cuando termine en el boton, Guardar, al terminar el registro se inhabilitaran todos los botones, menos el de Nuevo

1.- (Mientras consulta en el Grid los botones estan desabilitados) Desde un DBGrid en donde muestran todos los usuarios, con sus campos, Nombre y Apellido, selecciono uno dando doble click, permitiendo que la informacion se regrese a los TEdits en donde fue capturado. ya una vez mostrada la informacion de la persona seleccionada, si el usuario borra, edita cualquier registro que fue mostrado como el Nombre o Apellido, quiero que se activen los botones, GuardarModificacion, Cancelar, y que se inhabiliten Nuevo, Close, Limpiar y Guardar.

Esta es mi idea, es mi principal idea para que funcione el evento OnDataChange, activando botones como mencione anteriormente segun sea el caso, el cual sera activado cuando exista una modificacion en los registros que se muestran el los TEdit, espero que ahora si me entiendan, por que no se como o que poner de codigo en el OnDataChange y como repetia, no uso los DBEdits, ya que mi proyecto lo llevo algo avanzado y me pidieron que para ahorrar dolores de cabeza y codigo habilitara ese Evento del DataSource, pero como repito, si me pudieran dar un ejemplo que seguro alguien ya tiene algo parecido, para darme una idea, por que no se ni como llevarlo acabo
Responder Con Cita
  #5  
Antiguo 29-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
ya que veo que no me entienden o que no me pueden ayudar :S:S:S solo pregunto ya una vez comprendido como funciona el OnDataChange, pregunto cuales son los estados que puede adoptar el OnDataChange,

dsInsert es uno,
dsBrowse es otro me parece,

y me gustaria saber cuales mas existen por favor, no pido mas xDD solo eso, o diganme alguna referencia donde puedo leer sobre estos estados, espero me puedan ayudar por favor.
Responder Con Cita
  #6  
Antiguo 29-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si pulsas la tecla control y con el ratón haces click se enlazará al código de la declaración del mismo, ejemplo, lo verás como aquí abajo:

DS1.DataSet.State

Te llevará hasta aquí:

Código Delphi [-]
  TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey,
    dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead,
    dsInternalCalc, dsOpening);

También puedes pulsar F1 estando encima de la palabra 'State'

Última edición por Casimiro Notevi fecha: 29-03-2011 a las 01:32:40.
Responder Con Cita
  #7  
Antiguo 29-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
casimiro muchisimas gracias, enserio que se agradece la ayuda, andaba buscando por toda la web pero no encontraba nada, muchas gracias con eso creo que termino este tema ya que podre hacer lo que describia arriba, saludos y gracias de nuevo
Responder Con Cita
  #8  
Antiguo 29-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por ivantj24 Ver Mensaje
:S:S:S lo que pasa es que soy nuevo en Delphi, bueno relativamente, apenas llevo 2 meses y contando, y estoy a prueba y error, y la unica forma que miraba y conocia era esa, lo que si trate es que no puedo editar los DBEdit, ya que por su propiedad Datafield agrego al campo al que este asignado, y si lo muestra y todo pero no se, no me permite editarlo, no se si hay que poner algo en modo de edicion o que hacer, para permitir escribir y habilitar el boton de Guardar para que guarde todos los datos.
Para poder editar los DBEdit debes de poner al DataSet en cuestion, en modo de edicion: por ejemplo:
Código Delphi [-]
DBEdit1.DataSource.DataSet.Edit;//Pongo el dataSet en modo de edicion
En tu boton Aceptar (boton que confirma el cambio o la edicion) deberias tener algo así:
Código Delphi [-]
DBEdit1.DataSource.DataSet.Post;//confirmo el cambio y guardo los registros cambiados..
Si lo deseas puedes utilizar un componente DBNavigator en lugar de tener botones como Aceptar,editar,insertar, eliminar,Cancelar,refrescar; ya que el componente DBNavigator ya posee tales botones, inclusive posee los botones de navegacion por los registros del DataSet, tales como Primero(va al primer registro), Anterior(se pocisiona en el anterior registro del que estamos actualmente), Siguiente(se pocisiona en el siguiente registro del que estamos actualmente) y Ultimo(Va al último registro), tal solo hay que enganchar nuestro componente DBNavigator con el DataSource específico.. Lo bueno de ésto es que el componente DBNavigator lo hace todo automáticamente y no necesitamos codificar nada..., inclusive se lo puede configurar para mostrar solo algunos botones...
Como puedes ver con delphi es muy sencillo...ya que posee componentes muy potentes y específico para aplicaciones de Bases de datos sin necesidad de complicarte demasiado..
Espero sea de utilidad...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 29-03-2011 a las 15:49:36.
Responder Con Cita
  #9  
Antiguo 29-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
Disculpen de nuevo la molestia pero no me logra salir de esto, tuve que cambiar todos los TEdits por DBEdits para permitir percibir el cambio que en ello sse genere para que el DataSource pudiera realizar los cambios de estado en si, pero no me sale, lo que primero quiero hacer es:

como trabajo como ventanas MDI

1.- que al abrir una ventana, el DataSource de esa ventana se ponga en estado Edit o Inactivo, lo que sea, como me pasaron todos los estado y en ayudas tambien estan, intente poner esto,

Cita:
procedure TfrmPrincipal.AltadeEstacion1Click(Sender: TObject);
begin
Application.CreateForm(TfrmEstacion, frmEstacion);
frmEstacion.DataSourceEstacion.State:= dsInactive;
frmEstacion.Show;
end;
en esta linea en negrita que marco se que existe un error pero no me explico por que,
bueno esto es solo al querer poner en un estado el DataSource, mientras que en el DataSource en su evento OnDataChange para que me detecte los cambios pongo condiciones para que al percibir varios estados del DataSource vaya habilitando o no los botones

Cita:
procedure TfrmEstacion.DataSourceEstacionDataChange(Sender: TObject;
Field: TField);
begin
if DataSourceEstacion.State = dsInsert then
begin
btnAceptar1.Enabled:= True;
//Todos los botones que inhabilito y habilito
end
end;
Pero no entiendo como es posible darle un estado al DataSource desde fuera, ya que como les decia si uso
Cita:
DataSourceEstacion.State:= dsInsert;
no me permite hacerlo, o con cualquier otro estado, no lo puedo poner en ese modo de Edicion, asi que no lo puedo hacer, espero alguien me explique, ahora mismo estoy buscando por la web alguna solucion pero no he encontrado, espero me ayuden con esto, gracias
Responder Con Cita
  #10  
Antiguo 30-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tienes confundido los conceptos, fíjate en los ejemplos que ha puesto rgstuamigo.
Si quieres editar haces:
Código Delphi [-]
datasource.dataset.edit;
Si quieres insertar un registro:
Código Delphi [-]
datasource.dataset.append;
si quieres no hacer nada:
Código Delphi [-]
datasource.dataset.cancel;
El estado se pone automáticamente, no tienes que ponerlo tú.
Responder Con Cita
  #11  
Antiguo 30-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
ah ok ok entendido muchas gracias por las molestias, solo una cosa, si no esta haciendose nada, al momento de crear la ventana el estado del DataSource supongo esta en Inactive, lo que puse fue

Cita:
procedure TfrmEstacion.DataSourceEstacionDataChange(Sender: TObject;
Field: TField);
begin
if DataSourceEstacion.State = dsInactive then
begin
btnAceptar1.Enabled:= True;
end
end;
y por default yo puse ese boton como Inactivo por lo que al poner el estado del DataSource en el evento Oncreate de la forma de est aforma

Cita:
DataSourceEstacion.DataSet.Cancel;
lo cual supongo no hace nada, o esta en inactivo el datasource y no se cumple mi condicion, la cual es poner el boton aceptar en habilitado, no se si estoy confundido o estoy equivocado, esto es para al momento de entrar, que algunos botones por default esten deshabilitados pero no se como poner el DataSource en modo Inactivo o cancel, muchas gracias
Responder Con Cita
  #12  
Antiguo 30-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Normalmente cuando no está "haciendo nada" está en dsBrowse
Responder Con Cita
  #13  
Antiguo 30-03-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 14
ivantj24 Va por buen camino
ah ok ok probare ahora mismo muchisimas gracias :P
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
que evento usar? eltioalex Varios 4 03-07-2010 03:53:58
¿Cómo usar las teclas F12 etc,y las teclas de dirección o flechas con el evento key? Master23 OOP 1 03-04-2010 17:08:50
Interceptar [Prior,Next] al evento OnDataChange geolife Conexión con bases de datos 4 23-03-2009 18:08:00
Usar Evento OnAfterSCroll de un TQuery? jorllazo Conexión con bases de datos 12 04-10-2006 05:56:48
Cómo desactivar el evento OnDataChange? carlosmari Varios 4 27-10-2003 19:43:00


La franja horaria es GMT +2. Ahora son las 19:02:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi