Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola saldanaluis.

Cita:
Yo también tengo un requerimiento parecido. Mi DBGrid está ligado a una tabla en el Data-Module. Yo cambio de registro en el DBGrid hacia arriba o hacia abajo con las flechas del teclado, y cada vez que me cambio a otro registro, quiero verificar el valor de uno de los campos del registro para saber si habilito o deshabilito un botón.
En realidad no pareciera ser similar a el caso que plantea dvd2000 más arriba:
Cita:
yo lo unico que pretendo es detectar que se ha pinchado en el deslizamiento vertical, para luego proceder a ejecutar un procedimiento.

Creo que en tu caso basta con verificar la condición en el evento AfterScroll de tu TDataSet.
Código Delphi [-]
...
implementation

procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
   Button1.Enabled:= TuDataSet.FieldByName('Campo_A_Verificar').AsString = 'Dato_A_Evaluar';
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  TuDataSet.AfterScroll:= DataSetAfterScroll;
end;


Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-04-2011 a las 08:21:49.
Responder Con Cita
  #2  
Antiguo 25-04-2011
Avatar de saldanaluis
saldanaluis saldanaluis is offline
Miembro
 
Registrado: nov 2006
Ubicación: Monterrey NL México
Posts: 122
Poder: 20
saldanaluis Va por buen camino
Muchas Gracias. Me funcionó perfectamente.
Ahora, solo para terminar de entender lo que me diste a conocer aqui.
En los estatutos del FormShow que me mencionas, lo que se está haciendo es el hacer que el evento AfterScroll del dataset que tengo en el DataModule, apunte al procedure que definí en mi forma donde tengo el botón. Por lo que cuando sucede un evento de scroll en el dataset, en lugar de ejecutar, en el caso que lo hubiera, el procedimiento de AfterScroll que estuviese definido en el DataModule, se va a ejecutar el procedure que definí en la forma donde tengo el botón.

Al menos esto es lo que estoy entendiendo, ya que nunca he hecho algo así. Si no estoy en lo correcto, te agradecería me expliques que es lo que se hace con el código que me diste a conocer.

Como verás, soy un programador muy 'light' del delphi 7, y no se muchos de los trucos y por lo tanto el potencial que tiene el delphi para hacer aplicaciones.

Muchas gracias nuevamente.
Responder Con Cita
  #3  
Antiguo 25-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola saldanaluis.

Si el DataSet permanecerá abierto, es totalmente correcta tu apreciación.

En ese caso, la forma de guardar/restaurar el método asociado al evento sería:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    FDataSetNotifyEvent: TDataSetNotifyEvent; // para guardar puntero al método
    procedure DataSetAfterScroll(DataSet: TDataSet);
  public
  end;
...
implementation

procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
   Button1.Enabled:= DataModule.TuDataSet.FieldByName('Campo_A_Verificar').AsString = 'Dato_A_Evaluar';
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  FDataSetNotifyEvent:= DataModule.DataSet.AfterScroll;  // FDataSetNotifyEvent apunta al último método definido
  DataModule.DataSet.AfterScroll:= DataSetAfterScroll;   // Asignamos nuevo método
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   DataModule.DataSet.AfterScroll:= FDataSetNotifyEvent;  // restauramos el método anterior
end;
...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 26-04-2011 a las 16:56:53.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problemas con DBGrid y barras de desplazamiento joaquin OOP 1 23-11-2006 17:11:00
Problemas de desplazamiento dentro de un DBgrid? andressanchez Varios 1 29-07-2005 21:55:43
Barras desplazamiento vertical y horizontal Leomedellin Varios 3 06-04-2005 23:50:58
Problema con la barra de desplazamiento vertical en todo tipo de Grids cybergerman OOP 1 08-10-2004 12:14:10
Desplazamiento por un DBGrid Newbie Varios 2 25-09-2003 02:15:43


La franja horaria es GMT +2. Ahora son las 01:43:20.


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